有了maven,我偶尔会看到一些来自我尚未构建或包含在我的存储库中的第三方存储库的工件.
我将从maven客户端收到一条错误消息,指出无法找到工件:
未能找到org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 in
http://myrepo:80/artifactory/repo
缓存在本地存储库中,在MyRepo的更新间隔过去或强制更新之前,不会重新尝试解析 - > [帮助1]
现在,我理解这意味着什么,并且可以简单地重新运行我的命令-U
,并且通常在那里工作正常.
但是,我发现这个错误信息非常不直观,并且试图让我的同事们感到头疼.
我想知道是否有一些地方可以修改此update interval
设置.
update interval
此错误消息的客户端或服务器端的设置,被提及?这应该是我朋友的一个工作项目.他在我面前展示了项目,然后我复制了项目,将其作为现有的maven项目导入(我使用的是m2eclipse插件).
然后,发生此错误.每次我尝试使用maven构建内容时都可以重现此错误.
执行mvn依赖:tree,dependency:list或通常的构建包将导致相同的错误.
从eclipse运行'package'构建的错误是:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Jackpot Portal Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet:jar:2.5.0 is missing, no dependency information available
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0 is missing, no dependency information available
[WARNING] The POM for javax.transaction:com.springsource.javax.transaction:jar:1.1.0 is missing, no dependency information available
[WARNING] The POM for org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.963s
[INFO] Finished at: Tue Jan 11 …
Run Code Online (Sandbox Code Playgroud) 我想使用Maven制作web项目自动导入我需要的所有库,所以我选择了 "maven-archetype-webpp"
之后我在pom.xml文件上出现了这个错误:
Description Resource Path Location Type Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from/to central (http://repo.maven.apache.org/maven2): The operation was cancelled. pom.xml /SpringTuto line 1 Maven Configuration Problem
Run Code Online (Sandbox Code Playgroud)
我已经更新了我的Maven项目,但没有结果!
POM.XML:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.pre.example</groupId>
<artifactId>SpringTuto</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>SpringTuto Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope> …
Run Code Online (Sandbox Code Playgroud) 这是mvn -version的结果:
Apache Maven 3.0.4 (r1232337; 2012-01-17 00:44:56-0800)
Maven home: /usr/share/maven
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"
Run Code Online (Sandbox Code Playgroud)
假设我有快照依赖:
<dependency>
<groupId>org.puzzled</groupId>
<artifactId>foo</artifactId>
<version>1.0.4-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我在本地仓库中下载了该快照的副本.但随后其他开发人员进行了改进,并对foo-1.0.4-SNAPSHOT.jar进行了更新.我想通过从远程存储库下载它来向Maven发出一个执行命令以更新该依赖关系.
根据应对这种对SO和许多其他问题,如果我这样做
mvn clean -U package
Run Code Online (Sandbox Code Playgroud)
它应该(重新)下载所有依赖项.对?这不是发生的事情.它下载快照依赖项的元数据,推断(并且错误地),不需要更新.我必须删除本地.m2存储库中的关联子目录,以便Maven从远程仓库更新快照版本,即使使用-U标志也是如此.
这是一个错误,还是我错过了什么?
spring3 jpa(hibernate)用于我的项目但是我遇到了Hibernate Persistence类的问题......所以我无法正确创建我的entityManager并且问题一直在继续......
我在我的pom.xml文件中相信它的问题!(如果它不是问题那么可能在我的applicationCOntext.xml中?不要这么认为,但是他知道......)
这是它的pom.xml
<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.divux</groupId>
<artifactId>OneX</artifactId>
<version>1</version>
<packaging>war</packaging>
<name>OneX</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.springframework.version>3.0.5.RELEASE</org.springframework.version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.1</org.slf4j-version>
</properties>
<dependencies>
<!-- Shared version number properties -->
<!--Core utilities used by other modules.
Define this if you use Spring Utility APIs (org.springframework.core.*/org.springframework.util.*)-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<!--Expression Language (depends on spring-core)
Define this if you use Spring Expression APIs (org.springframework.expression.*)-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<!--Bean Factory and JavaBeans utilities (depends on spring-core)
Define this if …
Run Code Online (Sandbox Code Playgroud) 在命令行帮助中,我看到maven"检查"更新:
-U,--update-snapshots Forces a check for updated
releases and snapshots on remote
repositories
Run Code Online (Sandbox Code Playgroud)
但是,Stack Overflow上的大多数问题都意味着此选项会强制Maven更新.这是否意味着它强制重新下载依赖项?
运行maven命令后,jboss
工件将缓存在我的本地仓库中/.m2
.但是,这是错误的副本,我们已在本地服务器上更新了我们的工件.如何删除此缓存副本?(除了手动删除jboss
文件夹中的/.m2/repository/org
文件夹).有maven命令吗?另外,我想知道本地存储库是如何构造的,它是否groupId, artifactId, version (GAV)
以任何方式存在?
我们有一个像这样的Maven项目结构:
Parent
L A
L B
Run Code Online (Sandbox Code Playgroud)
A
依赖于取决于 B
两者都对其他库有各种依赖性
与此建设mvn clean install
优良工程,但是当我们试图修剪所有依赖描述这里与
mvn dependency:purge-local-repository
Run Code Online (Sandbox Code Playgroud)
我们收到一条错误消息,指出它无法将依赖项解析为B:jar:snapshot-version
:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.10:purge-local-repository (default-cli) on project A: Failed to refresh project dependencies for: A:jar:4.0.1-SNAPSHOT: required artifacts missing:
[ERROR] B:jar:6.0-5
Run Code Online (Sandbox Code Playgroud)
我目前的解释是,在实际构建过程中,B
将首先构建并解决该问题,但是在清除过程中,没有任何构建过程,因此解决方案将失败。但是项目在那里,并且它的依赖项应该清除。我怎样才能解决这个问题?
-DactTransitively=false
Run Code Online (Sandbox Code Playgroud)
似乎没有任何改变。
我在通过 Maven 安装下载依赖项 jar 时遇到问题。
从 Eclipse 控制台,我可以说 maven 正在尝试从旧的中央存储库 url 下载 jar:“ https://repo.maven.apache.org/maven2 ”而不是“ http://repo1.maven.org/maven2/ ”
我的 pom.xml
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxxx</groupId>
<artifactId>TestServices</artifactId>
<version>7.0.3.6</version>
<dependencies>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.0.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
我的构建失败并出现以下错误消息:
[ERROR] Failed to execute goal on project 'xxxyyy': Could not resolve dependencies for project xxxyyy:jar:4.0.3.6: The following artifacts could not be resolved: org.codehaus:xstream:jar:1.3.1, gxs:ai:jar:0.5, javax.activation:activation:jar:1.0.2, com.oracle.jdbc:classes12:jar:9.2.0.5, org.eclipse.core:resources:jar:3.1.0, org.eclipse.core:runtime:jar:3.2.0.v20060603, org.eclipse.emf:common:jar:2.2.1.v200609210005, org.eclipse.emf:ecore:jar:2.2.1.v200609210005, org.eclipse.emf:ecore.xmi:jar:2.2.1.v200609210005, org.eclipse.equinox:common:jar:3.2.0.v20060603, org.eclipse:osgi:jar:3.2.1.R32x_v20060919, org.eclipse.wst.xml:core:jar:1.1.1.v200609210600, org.eclipse:xsd:jar:2.2.1.v200609210005, javax.mail:mail:jar:1.3.2, org.apache:log4j:jar:1.2.8: Failure to find org.codehaus:xstream:jar:1.3.1 in ${localRepo} …
Run Code Online (Sandbox Code Playgroud) 我有一个settings.xml
如下所示: -
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>nReleases</id>
<username>test</username>
<password>test123</password>
</server>
<server>
<id>nSnapshots</id>
<username>test</username>
<password>test123</password>
</server>
</servers>
<profiles>
<profile>
<id>space</id>
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>nReleases</id>
<name>Releases</name>
<url>http://someserver/repository/maven-releases/</url>
</repository>
<repository>
<id>nSnapshots</id>
<name>Snapshots</name>
<url>http://someserver/repository/maven-snapshots/</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>space</activeProfile>
</activeProfiles>
</settings>
Run Code Online (Sandbox Code Playgroud)
我希望 maven 先检查repo1.maven.org
,然后才查看someserver
. 有人可以让我知道这是如何实现的吗?
我正在使用 Maven 3.3.9。
我已经解决了这个问题,并试图改变在配置文件中声明 repos 的顺序,但它没有帮助。
<profile>
<id>space</id>
<repositories>
<repository>
<id>nReleases</id>
<name>Releases</name>
<url>http://someserver/repository/maven-releases/</url>
</repository>
<repository>
<id>nSnapshots</id>
<name>Snapshots</name>
<url>http://someserver/repository/maven-snapshots/</url>
</repository>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories> …
Run Code Online (Sandbox Code Playgroud)