appassembler和长类路径

时间:2010-03-26 16:04:18

标签: maven-2 appassembler java-service-wrapper

我正在使用maven appassembler来创建我的程序集。我的类路径太长了,我得到“输入行太长了。”建议here是使用booter windows平台,但我不得不使用Java Service Wrapper。我可以用任何方式使用java6通配类路径和java服务包装器吗?

7 个答案:

答案 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)

我在这里提出了一个JIRA问题:

http://jira.codehaus.org/browse/MAPPASM-203

你可以去投票吧。

答案 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及更低版本下运行时,才支持“旧式”样式。