maven - 使用 Maven 解包依赖项并重新打包类?

标签 maven jar

我正在尝试解压 Maven Artifact A 并将其重新打包到 Maven 项目 B 中的新 jar 文件中。

将 Artifact A 中的类文件解压到:

    <my.classes.folder>${project.build.directory}/staging</my.classes.folder>

使用这个工作正常:
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.test</groupId>
                                <artifactId>mvn-sample</artifactId>
                                <version>1.0.0-SNAPSHOT</version>
                                <type>jar</type>
                                <overWrite>true</overWrite>
                                <outputDirectory>${my.classes.folder}</outputDirectory>
                                <includes>**/*.class,**/*.xml</includes>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>

在同一个 pom 中,我现在想生成一个包含刚刚解压的类的额外 jar:
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <configuration>
                    <classesdirectory>${my.classes.folder}</classesdirectory>
                        <classifier>sample</classifier>
                    </configuration>
                </execution>
            </executions>
        </plugin>

创建了一个新 jar,但它不包含以下类中的类:
 ${my.classes.folder}

它只是默认项目 jar 的副本。有任何想法吗?

我试图遵循本指南:

http://jkrishnaraotech.blogspot.dk/2011/06/unpack-remove-some-classes-and-repack.html

但它不工作。

最佳答案

在示例中,您有 <classesdirectory>docs 的元素为 <classesDirectory> 。我认为区分大小写很重要。

关于maven - 使用 Maven 解包依赖项并重新打包类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142511/

相关文章:

java - Maven:运行创建的带有依赖项的 Jar 文件

maven - 使用 Maven 编译范围时 jar 中缺少依赖类

java - 无法从 PHP 的 exec 运行 java

java - 如何从另一个 .jar 中的类调用方法?

java - 从 tomcat 访问 jar 文件

java - Spark : java. lang.NoClassDefFoundError: com/mongodb/hadoop/MongoInputFormat

Java-grpc 和 tikv-java : NoSuchFieldError: CONTEXT_SPAN_KEY

java - 在 Maven 项目中设置 jdbc

java - 在 NetBeans 中创建 .JAR 很困难

java - 无法通过命令行或双击运行JAR