我在 java 构建过程中使用 Maven。以下是创建具有所有依赖项的单个 jar 的代码片段。为了减少对构建的小更改的数据传输,我想将所有项目文件(包括依赖项)放在文件夹 target/build 中。我计划将文件夹与运行应用程序的远程计算机同步,并使用以下命令运行应用程序:
java -cp target/build/* <classname>
如何修改此代码片段以实现此目的?我已阅读此处的文档,但不知道如何将修复程序拼凑在一起:
- http://maven.apache.org/plugins/maven-assembly-plugin/
- http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html
<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.3</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
最佳答案
您是否想在构建时让 Maven 将依赖项复制到目标文件夹?
我认为您需要 Maven 依赖插件。它将项目的依赖项复制到您指定的输出文件夹。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${targetDirectory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
听起来您可能还需要 maven jar 插件来告诉它将 jar 打包到哪里。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<outputDirectory>${dir}</outputDirectory>
</configuration>
</plugin>
关于java - 将项目的所有库和文件放在一个文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449237/