xcode maven插件无法构建库

Posted

技术标签:

【中文标题】xcode maven插件无法构建库【英文标题】:xcode maven plugin unable to build library 【发布时间】:2014-02-02 18:50:41 【问题描述】:

我正在尝试使用 XCode Maven 插件从头开始构建我的第一个 ios 库 - 出于测试目的,仅来自从 Xcode 新项目模板中选择“空应用程序”后添加的资源。下面是我的目录布局:

xcode-maven-hello-master
    pom.xml
    src
        xcode
            MavenTest
                AppDelegate.h
                AppDelegate.m
                MavenTest-Info.plist
                // other files (assets, etc.)
            MavenTest.xcodeproj

还有我的配置文件:(pom.xml)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>my.package</groupId>
    <artifactId>MavenTest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>xcode-lib</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>com.sap.prd.mobile.ios.mios</groupId>
                <artifactId>xcode-maven-plugin</artifactId>
                <version>1.13.0</version>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>
</project>

如您所见,我的 artifactId 与 Xcode 项目名称相同。打包设置为 xcode-lib。我还设置了扩展标签 (true) 并在 XCode Preferences 派生数据文件夹中相对于名为 build 的项目文件夹进行了更改。但调用后:mvn clean install我得到以下错误:

未能执行目标 com.sap.prd.mobile.ios.mios:xcode-maven-plugin:1.13.0:xcode-package MavenTest 项目上的 (default-xcode-package):执行 目标的默认 xcode 包 com.sap.prd.mobile.ios.mios:xcode-maven-plugin:1.13.0:xcode-package 失败的: /Users/kuba/Desktop/xcode-maven-hello-master/target/checkout/src/xcode/build/Release-iphoneos/libMavenTest.a 应该附上但不存在

我的库没有创​​建。但我无法弄清楚我做错了什么。如果你们中的任何人成功地构建了库并且可以解释我如何正确地做到这一点?调用 mvn install 后,我的库应该放在本地存储库中吗?我将不胜感激!

【问题讨论】:

【参考方案1】:

如果你想创建一个库项目,我认为你应该尝试选择一个 iOS 静态库项目模板而不是空的应用程序模板。你能试试这个改变吗?

【讨论】:

你说得对 - 当我创建库项目时它可以工作。但我认为它并不能解决其他问题——如果你想在你的项目中包含一些工件作为 .framework 文件怎么办?而在另一个作为静态库(都来自公共来源)?也许您可以为每个任务配置单独的目标,并在您的 pom.xml 文件中选择适当的目标进行编译,但我认为它应该由插件来保证。 我没有得到你的问题。但是如果您需要“工件”进行编译,您可以将其从构建目标中排除。通过这样做,您可以编译代码,但工件不包含在构建中。 Edit *如果你不需要 例如,您编写了自定义幻灯片菜单。在一个项目中,您希望将其包含为静态库,但在另一个项目中,您希望将其包含为 .framework 文件。我的问题是关于如何做到这一点:) 我的结论是插件应该通过在每个项目的 pom.xml 中选择 xcode-lib 或 xcode-framework 作为包类型来支持它,这些包类型需要包含您的幻灯片菜单。但是你的幻灯片菜单项目的模板应该没有问题。

以上是关于xcode maven插件无法构建库的主要内容,如果未能解决你的问题,请参考以下文章

Maven 核心原理

解决maven插件问题:'无法加载mojo'

Maven 发布插件。无法标记分支

Sonar Maven 插件无法使用密码作为 Maven 参数连接到 Oracle DB

maven 插件 引入dockerfile-maven-plugin 提示无法找到?

无法使用 Maven 构建 Hudson 插件