【发布时间】:2014-04-29 13:44:37
【问题描述】:
我有一个 Android 项目。这个项目又增加了我公司的另外两个项目。 为此,在 Android 中,我右键单击项目,然后选择属性,然后选择 android,然后选择库,然后单击添加按钮并选择放置项目的两个本地文件夹。
之后,当我编译我的项目时,android会编译另外两个项目并“自动”添加到我的项目中。
现在,我需要做同样的事情,但使用 Maven。我该怎么办?
感谢您的帮助,对不起我的英语不好
【问题讨论】:
我有一个 Android 项目。这个项目又增加了我公司的另外两个项目。 为此,在 Android 中,我右键单击项目,然后选择属性,然后选择 android,然后选择库,然后单击添加按钮并选择放置项目的两个本地文件夹。
之后,当我编译我的项目时,android会编译另外两个项目并“自动”添加到我的项目中。
现在,我需要做同样的事情,但使用 Maven。我该怎么办?
感谢您的帮助,对不起我的英语不好
【问题讨论】:
如果所有项目都是 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 项目,所以没有额外的工作人员可以做,这里 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 文件快照仍然合法。
【讨论】: