我正在使用maven appassembler来创建我的程序集。我的类路径太长了,我得到“输入行太长了。”建议here是使用booter windows平台,但我不得不使用Java Service Wrapper。我可以用任何方式使用java6通配类路径和java服务包装器吗?
答案 0 :(得分:2)
你试过了吗?
<useWildcardClassPath>true</useWildcardClassPath>
这解决了我的问题,但是,如果你还没有,你还需要确保你正在使用:
<repositoryLayout>flat</repositoryLayout>
答案 1 :(得分:1)
似乎答案是“不”,没有编写插件或扩展现有插件,这不是原始问题的“答案”。
答案 2 :(得分:1)
我建议在http://jira.codehaus.org/browse/MAPPASM中提交一个错误来解决它。我编写了JSW集成并知道它需要更多的工作。
答案 3 :(得分:1)
您还可以尝试展平存储库(即lib)目录的目录结构。默认情况下,appassembler保留深层目录结构,这可以为类路径添加不必要的长度。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
<programs>
<program>
<mainClass>com.mycompany.app.MyApp</mainClass>
<name>runMyApp</name>
</program>
</programs>
<repositoryLayout>flat</repositoryLayout>
</configuration>
</plugin>
</plugins>
</build>
答案 4 :(得分:0)
远远的......
从未使用过JSW,也许你可以根据http://maven.apache.org/plugins/maven-assembly-plugin/source-repository.html的代码创建自己的程序集插件并改为使用它。
答案 5 :(得分:0)
答案 6 :(得分:0)
在Windows命令提示符下,您可以在命令提示符下使用的字符串的最大长度为 8191个字符。
因此,如果您的项目具有过多的依赖关系,则它将生成长的类路径。
为克服这种情况,maven-appassembler提供了选项
在配置部分下添加这两行
<configuration>
<repositoryLayout>flat</repositoryLayout>
<useWildcardClassPath>true</useWildcardClassPath>
</configuration>
这两个选项的文档:(documentation)
useWildcardClassPath :
有时,您会遇到许多依赖关系,这意味着类路径非常长,并且变得太长(尤其是在基于Windows的平台上)。此选项可以在这种情况下提供帮助。如果激活此选项,则您的类路径仅包含类路径通配符(REPO / *)。但是请注意,这只能与Java 1.6及更高版本以及与repositoryLayout flat结合使用。
repositoryLayout :
生成的Maven存储库的布局。支持的类型-“默认”(Maven2)| “旧版”(Maven1)| “ flat”(flat lib /样式)。仅当您在Maven 2.2.1及更低版本下运行时,才支持“旧式”样式。