相关疑难解决方法(0)

如何为maven添加额外的源目录以进行编译并包含在构建jar中?

除了src/main/java之外,我添加了一个src/bootstrap目录,我希望在我的构建过程中包含该目录,换句话说,我希望maven在我的构建中编译并包含源代码.怎么样!?

java maven-2 maven

92
推荐指数
3
解决办法
13万
查看次数

Ant到Maven - 多个构建目标

我有一个Ant构建,目前正在转换为Maven.但是,Ant构建有2个构建目标 - 一个构建整个应用程序,另一个构建一些JAR(只有少数几个).在Ant中,很容易有多个构建目标来处理这个问题,但我正在尝试确定在Maven中处理这个问题的最佳方法.

我可以将文件子集拆分成第二个项目,它将拥有自己的POM.那么第一个项目可能取决于这个.但是,由于文件的子集非常小(小于10),因此为此创建一个全新的项目似乎有点过分.

还有其他方法可以解决这个问题吗?

ant build target maven

52
推荐指数
3
解决办法
3万
查看次数

使用不同/过滤类生成多个罐子的Maven最佳实践?

我开发了一个Java实用程序库(类似于Apache Commons),我在各种项目中使用它.除了胖客户端,我还将它用于移动客户端(具有J9 Foundation配置文件的PDA).随着时间的推移,作为单个项目启动的库分布在多个包中.因此,我最终得到了许多功能,这在所有项目中并不是真正需要的.

由于这个库也用在一些移动/ PDA项目中,我需要一种方法来收集使用过的类并生成实际的专用jar.

目前在使用此库的项目中,我有Ant jar任务,从(从实用程序项目)生成专用jar文件(例如:my-util-1.0-pda.jar,my-util-1.0-rcp.jar)使用include/exclude jar任务功能.由于生成的jar文件的大小限制,对于移动项目,这通常是需要的.

现在迁移到Maven我只是想知道是否有任何最佳实践可以达到类似的目的.我考虑以下场景:

[1] - 除了主jar工件(my-lib-1.0.jar)之外,还在my-lib项目中使用Maven Jar插件使用分类器(例如:my-lib-1.0-pda.jar)生成单独/专用工件或Maven Assembly Plugin过滤/包含.我对这种方法不太满意,因为它污染了库,消费者需要(过滤器).

[2] - 为所有专门的客户端/项目创建额外的Maven项目,这将"包装""my-lib"并生成过滤的jar工件(例如:my-lib-wrapper-pda-1.0 ......等) .因此,这些包装器项目将包括过滤(以生成过滤的工件),并将仅依赖于"my-lib"项目,客户端项目将依赖于my-lib-wrapper-xxx-1.0而不是my- lib-1.0.这种方法可能看起来有问题,因为即使这样也会让"my-lib"项目完整(没有额外的分类器和工件),基本上会使项目数量增加一倍,因为对于每个客户端项目我都会有一个lib,只是为了收集所需的来自"my-util"库的类("my-pda-app"项目将需要一个"my-lib-wrapper-for-my-pda-app"项目/依赖项).

[3] - 在每个使用该库的客户端项目中(例如:my-pda-app)添加一些专门的Maven插件来修剪(当生成最终的工件/包时)不需要的类(例如:maven-assembly) -plugin,maven-jar-plugin,proguard-maven-plugin).

在"Maven方式"中解决此类问题的最佳实践是什么?

maven-2 maven maven-assembly-plugin

32
推荐指数
1
解决办法
3万
查看次数

Maven,Proguard和装配问题

我正在努力让Maven与ProGuard合作.

我想要实现的目标如下:

  • 在我的源文件上运行ProGuard并生成混淆的类

  • 创建一个引用主类的清单文件,以便我可以将其作为jar执行

  • 解压缩所有相关的库jar并创建一个包含它们的巨大jar.此文件只应与.class和.xml文件联系.

  • 将它们组装成包含各种README.txt文件的.zip和tar.gz文件,依此类推.

到目前为止,我有这样的事情:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.class.path.MainClass</mainClass>
                    </manifest>
                </archive>
                <includes>
                    <include>**/*.class</include>
                    <include>**/*.xml</include>
                </includes>
            </configuration>
        </plugin>

        <plugin>
            <groupId>com.pyx4me</groupId>
            <artifactId>proguard-maven-plugin</artifactId>
            <configuration>
                <options>
                    <option>-allowaccessmodification</option>
                </options>
                <obfuscate>true</obfuscate>
                <injar>classes</injar>
                <outjar>${project.build.finalName}.jar</outjar>
                <outputDirectory>${project.build.directory}</outputDirectory>
                <proguardInclude>src/main/assembly/proguard.conf</proguardInclude>
                <libs>
                    lib/rt.jar</lib>
                </libs>
            </configuration>
            <executions>
                <execution>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>proguard</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <execution>
                    <id>assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>assembly</goal>
                    </goals>
                    <configuration>
                        <descriptors>
                            <descriptor>
                                src/main/assembly/bin.xml
                            </descriptor>
                        </descriptors>
                    </configuration>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

但我没有快乐.任何人都可以给我任何模糊的指示吗?

先谢谢,马特

java plugins maven-2 assemblies proguard

18
推荐指数
1
解决办法
1万
查看次数