Java 使用appassembler maven插件将依赖项作为Jar复制到本地repo中,并将Jar作为类路径包含在内

Java 使用appassembler maven插件将依赖项作为Jar复制到本地repo中,并将Jar作为类路径包含在内,java,maven,batch-file,tomcat,heroku,Java,Maven,Batch File,Tomcat,Heroku,我使用的是最新版本的Maven,早些时候,我试图通过本地测试将一个特定的依赖项(称之为依赖项a)包含到Windows中的多模块项目(使用Tomcat的Java Web App和另一个Java项目)中,并使用MyPOM中的创建可运行的普通Java项目,使用.bat脚本。但事实证明,dependencyA包含了大量的依赖项,并且生成的.bat脚本由于包含了大量的类路径而超出了它可以执行的长度限制。 因此,我决定将其打包到一个jar中,从一个地方引用单个jar中的所有库,并通过使用maven依赖插件和

我使用的是最新版本的Maven,早些时候,我试图通过本地测试将一个特定的依赖项(称之为依赖项
a
)包含到Windows中的多模块项目(使用Tomcat的Java Web App和另一个Java项目)中,并使用MyPOM中的创建可运行的普通Java项目,使用
.bat
脚本。但事实证明,dependency
A
包含了大量的依赖项,并且生成的
.bat
脚本由于包含了大量的类路径而超出了它可以执行的长度限制。 因此,我决定将其打包到一个jar中,从一个地方引用单个jar中的所有库,并通过使用
maven依赖插件
copy
目标排除现有的类路径:

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
            <version>2.10</version> 
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                      <!--Below this is the dependency `A` -->
                        <artifactItems>
                            <artifactItem>
                                <groupId>org.deeplearning4j</groupId>
                                <artifactId>deeplearning4j-nlp</artifactId>
                                <version>${dl4j.version}</version>
                                <type>jar</type>
                                <overWrite>true</overWrite>
                                      <outputDirectory>${project.basedir}/localrepo</outputDirectory>

                                <destFileName>deeplearninglib</destFileName>

                            </artifactItem>

                        </artifactItems>

                        <localRepositoryDirectory>${project.basedir}\localrepo</localRepositoryDirectory>

                    </configuration>
                </execution>
            </executions>
        </plugin>

appassembler
插件。然而,问题仍然悬而未决,因为这还没有回答主要问题。

如果您已经使用了自Java 6以来可用的选项
useWildcardClassPath
,我真的无法理解您的问题是什么?@khmarbaise以前我试图在
bat
脚本中缩短类路径长度,但我没有知道
useWildcardClassPath
命令的存在,所以我试图创建一个包含所有第三方依赖项(包括上文解释的依赖项
a
)的jar,并将特定jar作为类路径添加到
bat
脚本中,而不是将依赖项的每个单独类路径添加到
bat
脚本中。然而,我仍然有兴趣知道如何完全实现我的原始方法(不使用
usewardclasspath
),以及是否可能。如果您已经使用自Java 6以来可用的选项
useWildcardClassPath
,我真的无法理解您的问题是什么?@khmarbaise以前我在
bat
脚本中试图缩短类路径长度,但我不知道
useWildcardClassPath
命令,所以我试图创建一个包含所有第三方依赖项(包括上面解释的依赖项
a
)的jar,并将该jar作为类路径添加到
bat
脚本中,而不是将依赖项的每个单独类路径添加到
bat
脚本中。然而,我仍然有兴趣知道如何完全实现我最初的方法(不使用
useWildcardClassPath
),以及是否可能。
 <repositoryLayout>flat</repositoryLayout>
 <useWildcardClassPath>true</useWildcardClassPath>