0

我正在开发一个 Android 项目,并且有一些核心代码(具有一些依赖项),我想对其进行版本化并制作成一个库/工件(?),我可以将其引入其他项目。我正在使用 Maven 构建,我的编辑器是 IntelliJ。我从未创建过 .jar,但我认为这就是我想要做的。

在 IntelliJ 中,我去了File -> Project Structure -> Artifacts -> +但我迷路了。我不知道如何定义要包含在 jar 中的源目录和文件,我不确定是否需要在 jar 中包含其依赖项的实际 jar?或者在 pom.xml 文件中定义这些依赖项并将 pom.xml 文件包含在 jar 中?

任何澄清将不胜感激。

4

2 回答 2

1

Maven 项目的依赖项在其pom.xml文件中定义(基本上,从这里更改依赖项是您使用 Intellij 直观地执行的操作,通过File->Project Structure->Artifacts)。Maven 使用的源文件位于项目的src/main目录中。默认情况下,构建是在不包括依赖项的情况下完成的,所以如果你想将它们包含在你的最终jar中,你必须在你的 pom 文件(插件)中指定它:

  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>attached</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration>
  </plugin>

之后,您必须执行mvn install命令来创建您的jar。您可以在外部或从您的IDE(如果您安装了一些 Maven 插件)运行 maven,并且该 jar 将在项目的目标文件夹中创建。

于 2013-07-16T13:33:37.870 回答
0

IntelliJ IDEA 中的设置只会在您使用 IntelliJ IDEA 编译器构建时创建 JAR。要让 maven 创建 JAR 并将其部署到 maven 存储库,您需要使用maven 程序集插件。有一个用于创建具有依赖关系的 jar的预定义配置。

Maven Shade 插件还可以创建 JAR 并处理更高级的用例。但是您可能希望从程序集插件/

于 2013-07-16T13:35:08.800 回答