相关疑难解决方法(0)

如何在Maven settings.xml中设置存储库的顺序

我在settings.xml中有3个存储库,因为我需要来自所有存储库的工件.每当找不到依赖项时,Maven就会尝试

Downloading: http://some.server/mvn2repo/releases/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://some.server/mvn2repo/3rdParty/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/2.9.1/lucene-core-2.9.1.pom
<success>
Run Code Online (Sandbox Code Playgroud)

所有存储库,但大多数时候在中心(repo1)找到工件.我希望Maven先检查这个回购.我在settings.xml中尝试了声明顺序,但是没有用.根据fgysin,我也尝试了相反的顺序,它没有改变任何东西.

我的Maven版本:

C:\>mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_15
Java home: C:\Program Files\Java\jdk1.6.0_15\jre
Default locale: de_AT, platform encoding: Cp1252
OS name: "windows vista" version: "6.0" arch: "amd64" Family: "windows"
Run Code Online (Sandbox Code Playgroud)

我的 settings.xml

<profiles>
    <profile>
        <id>space</id>
        <repositories>
            <repository>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <id>s1-releases</id>
                <name>System One Releases</name>
                <url>http://some.server/mvn2repo/releases</url>
            </repository>
            <repository>
                <releases> …
Run Code Online (Sandbox Code Playgroud)

java dependency-management maven

53
推荐指数
3
解决办法
8万
查看次数

如何包含pom项目中的所有模块

我正在寻找一种方法,从另一个pom.xml包含项目中的所有模块.所以在我的情况下,我有一个包装设置为pom的父pom.它包含3个子模块,用于在另一个api模块中实现我的接口.我想在maven中动态地包含我项目中的所有子模块.

在这种情况下,我想在另一个模块中包含connector1,connector2,connector3,而不必隐式指定connector1,2,3.

connectors - packaging: pom
   connector1 - packaging: jar
   connector2 - packaging: jar
   connector3 - packaging: jar
Run Code Online (Sandbox Code Playgroud)

我尝试在我的项目中包含连接器pom,但这不起作用.我希望用pom指定父包将包含子模块,但这不起作用.有没有解决方法如何做到这一点?

更新

这更像是我的后果,因为我想简单地添加一个连接器并包含项目的所有子模块依赖关系jar.这将使pom更容易阅读.

而不必像这样注册所有子依赖项

<dependencies>
        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector1</artifactId>
            <version>0.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector1-api</artifactId>
            <version>0.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector1-etl</artifactId>
            <version>0.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector1-persistence</artifactId>
            <version>0.0.1</version>
        </dependency>

         <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector2</artifactId>
            <version>0.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector2-api</artifactId>
            <version>0.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector2-etl</artifactId>
            <version>0.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector2-persistence</artifactId>
            <version>0.0.1</version>
        </dependency>

       <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector2-other</artifactId>
            <version>0.0.1</version>
        </dependency>
       ...
</dependencies>
Run Code Online (Sandbox Code Playgroud)

这只是澄清原始问题的一个例子.它不存在,如果确实有效,可能会有重新发布.

<dependencies>
        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>connector1</artifactId>
            <version>0.0.1</version>
            <type>pom</type>
            <include>submodules</include>
        </dependency> …
Run Code Online (Sandbox Code Playgroud)

java maven-3 maven

7
推荐指数
1
解决办法
783
查看次数

多个镜子的maven设置

我有一些个人项目,很少有公司项目.企业项目使用镜像的企业SVN仓库来实现maven依赖.我想以这样的方式配置我的settings.xml,以便首先根据我的公司镜像检查依赖项.只有在这里找不到依赖项时(对于我的个人项目),它才应该检查由我的公司仓库镜像的原始"中央"仓库.这可能吗.下面是我现在所拥有的片段,但在需要时它没有点击"中央"回购.谢谢.

<servers>
    <server>
        <id>central-mirror</id>
        <username>myusername</username>
        <password>mypassword</password>
        <filePermissions>664</filePermissions>
        <directoryPermissions>775</directoryPermissions>
        <configuration></configuration>
    </server>
</servers>

<mirrors>
    <mirror>
        <id>central-mirror</id>
        <url>https://url.to.my/mirror</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>


<proxies>
    <proxy>
    <id>proxy</id>
    <active>true</active>
    <protocol>http</protocol>
    <host>my.corporate.proxy</host>
    <port>8080</port>
    <nonProxyHosts>localhost|*.my.corporate.proxy</nonProxyHosts>
</proxy>
Run Code Online (Sandbox Code Playgroud)

eclipse m2eclipse

6
推荐指数
1
解决办法
5727
查看次数