在项目的pom中,我添加了与范围编译的依赖关系。这是一个包含一些类文件和jar的jar文件。我当前的java文件需要内部jar的依赖jar来编译。
但maven编译目标返回编译错误。 :banghead:
编译所需的所有jar都在单个jar文件中,该文件依赖于............................. < / p>
请帮助我!
我的pom:
<project>
<!-- ... -->
<dependencies>
<dependency>
<groupId>eagle</groupId>
<artifactId>zkui</artifactId>
<version>360LTS</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>./src/main/java</sourceDirectory>
<outputDirectory>./target/classes</outputDirectory>
<finalName>${project.groupId}-${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
错误:
包org.zkoss.zk.ui不存在 这个包org.zkoss.zk.ui在jar中 文件zkex.jar是依赖的 jar eagle:zkui:360LTS jar文件
请帮助我!!!! :jumpingjoy:
提前谢谢
答案 0 :(得分:0)
嗯,我想你可以
dependency:unpack
将jar解包到目标/ lib左右(编译前)通过排除所有内容来停用compiler:compile
<excludes>
<exclude>**/*.java</exclude>
</exclude>
使用antrun:run
和ant javac
任务来编译源代码,类似这样(将执行绑定到阶段compile
):
<target>
<javac srcdir="${project.build.sourceDirectory}"
destdir="${project.build.outputDirectory}">
<classpath>
<pathelement path="${maven.compile.classpath}"/>
<fileset dir="${project.build.directory}/lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
</javac>
</target>
但是,虽然这可以帮助您编译您的应用程序,但它无法帮助您运行或部署您的应用程序。
答案 1 :(得分:0)
您可以使用该元素执行此操作:
<dependencies>
<dependency>
<groupId>groep.does.not.matter</groupId>
<artifactId>neither-does-artifactId</artifactId>
<version>and.nor-does-version</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${project.baseDir}/lib/jarname.jar</systemPath>
</dependency>
</dependencies>
你需要引用的jar(并且在你的类路径中)是lib / jarname.jar,lib目录位于项目的根目录中。
答案 2 :(得分:0)
我相信你实际上没有使用正确的依赖项。 ZK实际上有here所描述的Maven存储库。
您需要检查所需的依赖项。例如对于zkex,你需要类似的东西:
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zkex</artifactId>
<version>${zk.version}</version>
</dependency>
您还需要添加ZK Maven存储库:
<repositories>
<repository>
<id>zk repository</id>
<url>http://mavensync.zkoss.org/maven2</url>
</repository>
<!-- If Using ZK EE or ZK PE Respository (not evaluation version), you need to add login info into ~/.m2/settings.xml -->
<repository>
<id>ZK PE Evaluation</id>
<url>http://mavensync.zkoss.org/zk/pe-eval</url>
</repository>
<repository>
<id>ZK EE Evaluation</id>
<url>http://mavensync.zkoss.org/zk/ee-eval</url>
</repository>
</repositories>
祝你好运! : - )