在这里提出我的问题之后,我现在提出了这个问题。我正在使用NetBeans 8。
我已经创建了一个Maven项目,我们将其命名为MyLibMaven(我使用了New Project-> Maven-> Java
Aplication),然后将我的库(我们将其命名为MyLib)移入了该Maven项目。
现在,当我进入常规的Java项目(我们称其为MyProject),并尝试将MyLibMaven作为库添加到MyProject时,我在Netbeans中看到以下弹出窗口:
This project cannot be added because it does not produce a JAR file using an Ant script
我在这里做错了什么?
这是我的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.dwnz.my.lib</groupId>
<artifactId>MyLib</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<name>MyLib</name>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>17.0</version>
</dependency>
</dependencies>
</project>
////////////////////////// EDIT ////////////////////////// //////
我将项目移至maven项目,并将MyLibMaven添加为依赖项。但是现在当我尝试运行我的项目时,我得到了这个失败的错误:
--- exec-maven-plugin:1.2.1:exec (default-cli) @ TeseMaven ---
Could not load the icon: /view/images/enable-server-icon.png
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at view.toolbar.ToolBar.createIcon(ToolBar.java:171)
at view.toolbar.ToolBar.<init>(ToolBar.java:53)
at view.MainFrame.<init>(MainFrame.java:98)
at view.MainFrame.newInstance(MainFrame.java:586)
at view.Main.main(Main.java:98)
------------------------------------------------------------------------
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 2.382s
Finished at: Wed Jul 23 02:13:22 BST 2014
Final Memory: 5M/126M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli) on project MyProjectMaven: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
您遇到的主要问题是…
您至少有两个基本选择…
指示Maven在构建过程中包括所有依赖项。有(至少)两种方法可以实现此目的。您可以将所有类包含在单个Jar中,或者让Maven将所有依赖项复制到指定位置并更新class- path
清单条目。
我个人更喜欢第二种选择,但这是个人的事情。作为我的Maven构建过程的一部分,我包括以下内容…
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<!--mainClass>com.acme.MainClass</mainClass-->
</manifest>
</archive>
</configuration>
</plugin>
基本上,第一个插件将所有依赖项Jars复制到的lib
目录中${project.build.directory}
。这是个人的事情,但是我不喜欢将Jar的内容合并到单个“主”
Jar中,因为我倾向于拥有与我在项目中用作查找的名称相同的资源…
第二个插件包括class-path
清单文件中的元素,以确保在运行时将依赖的jar包含在类加载器查找路径中。
如果要创建“单个”Jar,请看一下使用Maven在Jar中包含依赖项
使您的第二个项目成为Maven项目,并包括您的第一个项目作为对它的依赖。然后,Maven将自动为您解决所有依赖项。这就是重点…
我的Intellij项目在IDE中完美地运行,但任何试图提取有效数据的方法。来自它的jar文件导致了某种错误。我的项目使用Maven、Spring和Apache Ignite。这是我的pom。xml文件: 清单: 并且,文件夹结构: 我列出了以下尝试: 1-在pom中运行mvn clean install。xml目录:编译得很好,但我得到的错误是相对于jar文件没有主清单属性。 2-我打开jar文
我已经成功集成了Apache ant 现在,我试图生成负载测试的HTML报告,它工作得很好,直到我删除了test.jmx,test.jmx在文件夹C:\apache-ant-1.9.6\bin中 但由于我的测试计划名称和JTL文件名称不同,我删除了上面的测试。jmx和测试。html和build.xml中的指定名称: 但是现在在完成负载测试后,当我运行ant命令时,它会说: Cound 未找到 C:
我正在尝试编写一个依赖于HTTPBuilder库的Groovy脚本。我正试图通过如下所示的Grab注释将其添加为脚本的依赖项 但当我运行此脚本时,我得到了一个错误: Java语言lang.RuntimeException:抓取葡萄时出错--[下载失败:commons lang#commons lang;2.4!commons-lang.jar] 我已经测试过使用Grab将其他依赖项添加到脚本中,同
可以从jar文件中运行ant脚本吗? 目前,我有一个build.xml,它调用一些java代码,这些代码在一个jar文件中。然后它做一些进一步的蚂蚁处理。 当我从Eclipse导出jar文件时,我可以选择添加构建。xml文件到jar,所以我想知道我是否可以直接从jar运行ant脚本,这样我只需要给人们jar文件,而不是ant脚本。
问题内容: 问题 我刚刚安装了Sonar Jenkins插件。我进入了配置的作业(自由样式作业),该作业通过ANT构建生成WAR文件工件,并且执行以下操作: 选中声纳复选框。(这里没有问题) 配置声纳的安装目录(这里没有问题) 选中以下复选框: “检查该项目是否不是用maven 2构建的” (我在这里感到困惑) 我已经选中了该框,因为我没有使用Maven进行构建,而是使用ANT,但它仍要求我提供类
我在Java的早期版本中使用了Maven,但现在我正试图让它在Java 10中工作。我构建了一个简单的Hello world项目,具体来说: 公共课堂测试{ }使用模块信息类: 模块maven.test{导出main;} 与本项目相关的pom为: http://maven.apache.org/xsd/maven-4.0.0.xsd" 当我构建项目时,它成功构建。然后,我从Maven中央存储库添加