我是Spring和Maven开发的新手,我正在制作示例指南:https://spring.io/guides。
实际上我正在尝试用eclipse制作一个jar文件。
以下指南就是这个:https://spring.io/guides/gs/device-detection/
信息:
系统:Windows 8.1(x64) - i5-62000U @ 2.30GHz
我在代理后面 - 它全部设置,eclipse成功处理所有依赖。
Eclipse: JEE Mars 2(版本4.5.2)
Java :JDK 1.8.0_77
JRE :JRE 1.8.0_77
Maven: 3.3.9
M2E :它安装在我的eclipse中(随JEE版本一起提供)。
STS :我没有使用Spring Tool Suite Eclipse,只使用Clean JEE Eclipse。
环境变量: JAVA_HOME,M2_HOME已设置好,接下来我就开始了。
Windows路径:
C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\OpenVPN\bin;C:\Program Files (x86)\Skype\Phone\;C:\Progra~1\apache-maven-3.3.9\bin;C:\Program Files\Java\jdk1.8.0_77\bin
上下文
我使用skip arcthetype选择创建了项目,并使用所有依赖项声明它(在示例后面)。
POM:
<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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<groupId>org.springframework</groupId>
<artifactId>gs-device-detection</artifactId>
<version>0.1.0</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.mobile</groupId>
<artifactId>spring-mobile-device</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<name>Spring Milestone Repository</name>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<name>Spring Milestone Repository</name>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>
.m2文件夹中的XML设置:
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<proxies>
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>MY_USER</username>
<password>MY_PASSWORD</password>
<host>MY_HOST</host>
<port>3128</port>
</proxy>
</proxies>
</settings>
“mvn -version”的输出:
C:\Users\MY_USER>mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)
Maven home: C:\Progra~1\apache-maven-3.3.9
Java version: 1.8.0_77, vendor: Oracle Corporation
Java home: C:\Progra~1\Java\jdk1.8.0_77\jre
Default locale: it_IT, platform encoding: Cp1252
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"
问题:
到目前为止,我已经能够编译,运行和创建独立的jar文件服务,但在命令提示符中使用(每个都完美):
mvn spring-boot:run
mvn clean package
MY 问题是当我在Eclipse中执行时:选择Project&gt;运行为.. Maven Build
总是得到这个例外(无论我改变什么或者我在系统中放置或编辑或重新安装的内容):
java.lang.Exception: classworlds configuration not specified nor found in the classpath at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
到目前为止我做了什么?
第一
我更改并重新安装的设置中的所有内容都是零(甚至是Java和Maven)。
我注意到这个“启动器”的源代码在专家会理解的丛中,但为了所有人的缘故,我把链接放在同一个问题上:
我看到我在maven安装目录中缺少classworlds.conf文件,但我不知道里面应该放什么或放在哪里。
第二
我还在GitHub中看到一些程序员有自己的classwordls.conf文件,但我不明白我在哪里放这个,或者为什么这个异常只出现在Eclipse而不是命令提示符中。
第三
另外我注意到有些人已将M2_HOME更改为M3_HOME(适用于我在StackOverflow中看到的一些Mac用户)。
第四
我看到其他人说这是对位于M2_HOME \ boot中的“plexus-classworlds-2.5.2.jar”的依赖。我不明白为什么,Maven “应该”处理所有依赖项。
提前谢谢。
答案 0 :(得分:2)
对于遇到此问题的未来开发人员,我将保留所做的更改,以成功下载所有依赖项。
<强>首先:强> 公司里有一面镜子指向私人ArtiFactory并从那里下载所有工件,一些工件不存在以满足所有依赖关系,这就是为什么没有下载classworlds的主要原因。我请求支持并正确配置它。作为建议,检查始终是否正在下载依赖项的位置,如果它们 ARE 实际存在,并且您具有必要的权限。
<强>第二强> 我将我的eclipse版本更改为 Luna Service Release 2(4.4.2)并且连接问题已停止,我在其他答案和Maven Integration for Eclipse Luna and newer页面中看到了火星版本的一些错误报告4.5.2。
过去强> 还有一个额外的步骤可以避免与maven配置设置混淆,我将Eclipse中的文件位置更改为指向同一文件的全局设置和用户设置。这样您就知道如果设置有问题,您只需要检查一个文件。