appassembler-maven-plugin向classpath添加自定义条目

时间:2016-02-18 07:19:17

标签: java maven classpath maven-assembly-plugin

我正在编写一个Java-Application,它正在使用我的服务器上运行的第三方应用程序中的一些库。目前我使用appassembler-maven-plugin构建我的应用程序。这个插件将我的jar(app和依赖项)复制到lib文件夹中,在bin目录中生成一个shellcript。

在此shellscirpt中生成类路径。这个解决方案有效,但我公开了依赖关系罐(在我的应用程序和第三方应用程序中按时编写应用程序)。我的第三方应用程序的类路径设置在系统变量中,如$ THIRDPARTYAPP_CLASSPATH。

我想在我的pom.xml中设置依赖项,以便appassembler不将它们添加到lib和classpath,并希望在我的shellcript中添加systemvar $ THIRDPARTYAPP_CLASSPATH,以便我的应用程序使用来自已安装的第三方应用程序的jar。

目前我手动执行此操作(在构建后编辑shellcript)并且它可以正常工作。 appassembler-maven-plugin中是否有任何方法可以自动将systemvar添加到类路径中?

我在文档中找不到任何内容,此处有关类似问题的其他问题没有得到很好的解答。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>appassembler-maven-plugin</artifactId>
    <version>1.8.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>assemble</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <assembleDirectory>${project.build.directory}/appassembler</assembleDirectory>
        <extraJvmArguments>-Xms512m -Xmx1024m</extraJvmArguments>
        <generateRepository>true</generateRepository>
        <repositoryName>lib</repositoryName>
        <repositoryLayout>flat</repositoryLayout>
        <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
        <platforms>
            <platform>unix</platform>
        </platforms>
        <programs>
            <program>
                <mainClass>${mainClass}</mainClass>
                <id>app</id>
            </program>
        </programs>
    </configuration>
</plugin>

1 个答案:

答案 0 :(得分:0)

您可以配置创建<environmentSetupFileName>setup-env</environmentSetupFileName>,它可以通过CLASSPATH_PREFIX定义新的类路径部分,这可以解决您的问题。