gpt4 book ai didi

java - 使用 maven 构建完整的应用程序文件夹

转载 作者:搜寻专家 更新时间:2023-11-01 02:14:17 24 4
gpt4 key购买 nike

大多数 java 独立应用程序在部署到生产环境后最终都位于一个看起来像这样的文件夹中。

myapp  
|->lib (here lay all dependencies)
|->config (here lay all the config-files)
|->myapp.bat
|->myapp.sh

我想知道 maven 中是否有任何东西可以为我构建该结构并将其放入 tar.gz 中。

Java: How do I build standalone distributions of Maven-based projects?没有选择。我不想让 maven 解压我需要的所有 jar。

最佳答案

这种部署目录结构非常流行,并被许多出色的应用程序采用,例如 apache maven 和 ant。

是的,我们可以通过在 maven 包阶段使用 maven-assembly-plugin 来实现这一点。

示例 pom.xml:

  <!-- Pack executable jar, dependencies and other resource into tar.gz -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<executions>
<execution>
<phase>package</phase>
<goals><goal>attached</goal></goals>
</execution>
</executions>
<configuration>
<descriptors>
<descriptor>src/main/assembly/binary-deployment.xml</descriptor>
</descriptors>
</configuration>
</plugin>

示例 binary-deployment.xml:

<!--
release package directory structure:
*.tar.gz
conf
*.xml
*.properties
lib
application jar
third party jar dependencies
run.sh
run.bat
-->
<assembly>
<id>bin</id>
<formats>
<format>tar.gz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/java</directory>
<outputDirectory>conf</outputDirectory>
<includes>
<include>*.xml</include>
<include>*.properties</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/bin</directory>
<outputDirectory></outputDirectory>
<filtered>true</filtered>
<fileMode>755</fileMode>
</fileSet>
<fileSet>
<directory>src/main/doc</directory>
<outputDirectory>doc</outputDirectory>
<filtered>true</filtered>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>false</unpack>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>

关于java - 使用 maven 构建完整的应用程序文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10151458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com