【问题标题】:How create a dependency to others local projects如何创建对其他本地项目的依赖
【发布时间】:2014-04-29 13:44:37
【问题描述】:

我有一个 Android 项目。这个项目又增加了我公司的另外两个项目。 为此,在 Android 中,我右键单击项目,然后选择属性,然后选择 android,然后选择库,然后单击添加按钮并选择放置项目的两个本地文件夹。

之后,当我编译我的项目时,android会编译另外两个项目并“自动”添加到我的项目中。

现在,我需要做同样的事情,但使用 Maven。我该怎么办?

感谢您的帮助,对不起我的英语不好

【问题讨论】:

    标签: android maven


    【解决方案1】:

    如果所有项目都是 Maven 项目,那么您可以轻松创建一个多模块项目。详情请查看this guide。 TL;DR 将添加一个看起来像这样的父 pom:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <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/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>your.group.id</groupId>
        <artifactId>your-parent</artifactId>
        <packaging>pom</packaging>
        <version>1.0</version>
        <name>Multi Module Parent Example</name>
    
        <modules>
            <module>android-app</module>
            <module>other-project1</module>
            <module>other-project2</module>
        </modules>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    然后你有一个这样的目录结构:

    my-projects/
    | pom.xml <-- The above pom
    | android-app/
    +-+ pom.xml
    | \ ...
    | other-project1/
    +-+ pom.xml
    | \ ...
    | other-project2/
    +-+ pom.xml
      \ ...
    

    编辑:如果您想将来自非 Maven 项目的 jar 自动包含到您的构建中,请查看 this question 及其接受的答案。这里的 TL;DR 是在你的 pom 中添加这样的东西:

    <dependency>
        <groupId>test</groupId>
        <artifactId>own-project1</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>../own-project1/target/own-project1.jar</systemPath>
    </dependency>
    <dependency>
        <groupId>test</groupId>
        <artifactId>own-project2</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>../own-project3/target/own-project3.jar</systemPath>
    </dependency>
    

    【讨论】:

    • 但我的其他项目不是 maven 项目,我无法转换它们。
    • 好的,那么您希望如何以及在哪里导入项目?当您构建应用程序并作为 jars 时?
    • 是的,我的想法是:当maven生成我的apk时,必须编译其他项目并使用它。
    • 谢谢,我会试试你的答案。可悲的是现在我的项目经理更改了我的任务,所以我仍然无法尝试
    【解决方案2】:

    你依赖的项目都是 maven 项目,所以没有额外的工作人员可以做,这里 maven 让事情变得更容易,你可以简单地声明对其他项目的依赖项目:

    <project>
      <groupId>your.group.id</groupId>
      <artifactId>your-artifact-id</artifactId>
      ...
      <dependency>
        <groupId>some.group.id</groupId>
        <artifactId>some-artifact-id</artifactId>
        <version>1.0</version>
      </dependency>
    </project>
    

    或者当依赖模块是非maven化项目时,您可以将档案(jar)安装到本地存储库,以便以后可以将它们用作maven依赖项:

    mvn install:install-file -Dfile=PATH_TO_JAR_FILE.jar -DgroupId=some.group.id -DartifactId=some-artifact-id -Dversion=1.0 -Dpackaging=jar
    

    那么上面的 pom.xml 文件快照仍然合法。

    【讨论】:

      猜你喜欢
      • 2020-08-17
      • 1970-01-01
      • 2014-07-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多