相关疑难解决方法(0)

如何在几个maven项目之间共享公共属性?

我有几个由maven构建的项目,我想在它们之间共享一些常见的属性 - spring版本,mysql驱动程序版本,svn base url等等 - 所以我可以更新它们一次,它将反映在所有项目中.

我想过有一个带有所有属性的超级pom,但如果我改变其中一个问题,我需要增加它的版本(并更新所有poms继承它)或从所有开发人员的机器中删除它我不想这样做.

可以在pom外部指定这些参数吗?我仍然希望在父pom中具有外部位置定义.

configuration maven-2 properties-file

50
推荐指数
3
解决办法
5万
查看次数

Java文件中的Maven版本号

我来自ANT,您可以通过执行某种方法调用.java文件来获取版本号.我想在我的新pom.xml中做类似的事情来自动获取正确的版本号.我需要应用程序了解它自己的版本,同时Maven知道版本得到了正确的版本.持有版本infomormation加倍是没有选择.

或者Maven可以在构建期间/之前创建一个新的.java文件吗?

我可以想象很多方法来实现这个目标,但是在Maven项目中有没有最佳实践方法呢?

java ant build m2eclipse maven

17
推荐指数
1
解决办法
1万
查看次数

使用mvn声纳运行声纳分析:声纳忽略sonar-project.properties

最新3.3声纳-maven-plugin和5.6 LTS作为网络服务器.
使用mvn sonar:sonar (Scanner for Maven)运行声纳分析会
忽略sonar-project.properties文件.(有许多参数https://docs.sonarqube.org/display/SONAR/Analysis+Parameters)

这是预期的行为吗?
那么我是否必须在pom.xml文件中配置所有声纳参数?

java maven sonarqube

12
推荐指数
2
解决办法
9261
查看次数

maven - 从属性文件中读取版本号

我试图从文本文件中读取我的构建版本号,然后将其分配给生成的包名:myRelease-1.1.1.apk,其中内部版本号被手动设置为属性文件version.number = 1.1.1如何通过属性文件中的那个重载pom.xml中设置的$ {version.number}?

编辑:有关该项目的更多详细信息.我使用git提交属性文件,然后Jenkins接管并使用Maven构建.我想最终得到一个构建"myBuild-9.9.9.apk".现在我在extras/version.properties中有"myBuild-1.1.2.apk"

project.version=9.9.9  
Run Code Online (Sandbox Code Playgroud)

在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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
            .....
            <version>1.1.2</version>
      </parent>

      <groupId>ca.lapresse.android</groupId>
      <artifactId>lapresse-hockey-app</artifactId>
      <packaging>apk</packaging>
      <name>La Presse Hockey - App</name>
      <version>1.1.2</version>
Run Code Online (Sandbox Code Playgroud)

......似乎${project.artifactId}从版本号开始<version></version>,它变成了1.1.2.这应该反映在${project.version},我试图从属性文件重载.

<plugin>
<groupId>org.codehaus.mojo</groupId>
      <artifactId>properties-maven-plugin</artifactId>
      <version>1.0-alpha-2</version>
      <executions>
            <execution>
                  <phase>process-resources</phase>
                  <goals>
                        <goal>read-project-properties</goal>
                  </goals>
                  <configuration>
                        <files>
                              <file>${project.basedir}/extras/version.properties</file>
                        </files>
                  </configuration>
            </execution>
      </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我根本没做什么?我对Maven的理解非常简陋(我来自Ant背景).

properties maven

11
推荐指数
2
解决办法
9691
查看次数

将a属性设置为maven.compile.classpath包含WITHOUT Ant

我想在我的pom中将属性设置为包含所有项目依赖项的类路径.蚂蚁插件做了这样的事情,所以我知道这绝对是可能的.

我基本上想在我的pom中使用$ {maven.compile.classpath},并让它"正常工作".我不介意使用插件或其他任何东西来实现这一点.

非常感谢,

缺口

java maven-2 properties classpath

10
推荐指数
3
解决办法
1万
查看次数

将文件读入Maven属性

是否可以读取文件并将整个内容存储到Maven属性中?

我正在尝试生成一些自定义JavaDoc,并且他们可以选择设置标头,但它必须是字符串,而不是文件名(出于某种原因).我显然不想把一堆HTML放到我的pom.xml中,所以我需要一种方法来读取我header.html的Maven属性.

这可能吗?我无法找到标准方式,但看起来像Maven插件可能会这样做.

显然Ant有我想要的东西,但我更喜欢比Ant任务更重的东西.

maven

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

什么是maven.multiModuleProjectDirectory用于?

我已经看到很多关于maven.multiModuleProjectDirectory在SO和Maven邮件列表上设置env参数的讨论,但是我无法准确理解这个设置的用途.

我搜索了谷歌,专家网站,文档等,但似乎找不到实际解释这个参数是什么,或如何利用它的参考.

任何人都可以解释它的目的和/或指向我的文档吗?它引入了哪个版本的maven?

java maven

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

Maven中的用户和项目特定设置

我们同时开发项目的多个分支.每个开发人员都有多个工作副本,每个工作副本使用自己的数据库模式.(通常会有每个分支工作拷贝,但有时甚至超过一个工作日每个分支副本.)我们需要让Maven的了解DB凭据(数据库迁移插件,单元测试,为的dev的实例小服务程序).

我们无法将凭据放入,pom.xml因为每个开发人员可能使用不同的数据库模式名称.我们无法放入凭据,settings.xml因为每个开发人员都使用多个架构.

我们把凭证放在哪里?

例如,http://code.google.com/p/c5-db-migration/描述了需要存在数据库凭据,pom.xml但我想将它们外部化为不受版本控制的文件.

settings configuration branch properties maven

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

在 Maven 命令中传递环境变量

我有一个如下所示的属性文件

testdb.username=AA
testdb.password=AA
testdb.port=1521
testdb.host=localhost
Run Code Online (Sandbox Code Playgroud)

现在,我想在 maven 命令中将所有这 4 个键值对作为 env 变量传递。

一种方法是将每个键值对放在如下所示的 maven 命令中

mvn clean package -Dtestdb.username=A -Dtestdb.password=AA ....
Run Code Online (Sandbox Code Playgroud)

我想知道在 Maven 中有什么方法可以将整个属性文件传递给 Maven 和 Maven 读取属性文件,并将所有键值对动态设置为 Maven 命令中的 env 变量。

java maven

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

通过属性文件指定 pom 属性?

由于我的构建系统的设计方式(RTC 构建引擎),我想通过属性文件为 maven 提供属性值,而不是为每个属性指定 -Dkey=value。

我发现了几个关于 SO 的问题(How to set build properties from a file in Maven POM? and How to read an external properties file in Maven)与这个问题完全相关,但它们相对较旧,并且都需要自定义插件工作(处于 alpha 状态)。

我意识到像这样将参数传递给 Maven 可能不是最好的解决方案,但另一个选项是通过 -D 设置在命令行上指定所有内容,这也不理想。

此外,鉴于此属性文件仅由构建引擎(而不是个人开发人员)真正使用,我并不真正相信它属于 pom.xml 文件。但是我找不到任何其他机制可以让我指定要使用的插件 - settings.xml 不允许指定插件。

在这种情况下,我唯一的选择是使用插件并在项目 pom 中指定它吗?

java properties maven

4
推荐指数
1
解决办法
1万
查看次数

maven属性插件:运行"mvn deploy"时的奇怪行为

我有一个与maven属性插件相关的问题.我的问题与如何在Maven中读取外部属性文件有些关系

根据该文章的建议,我已经设法让它完成我想要它做的大部分工作.我的配置如下所示:

<dependency>
    <groupId>org.kuali.maven.plugins</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0.8</version>
</dependency>
...


<plugin>
    <groupId>org.kuali.maven.plugins</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0.8</version>

    <executions>
        <execution>
            <phase>initialize</phase>
            <goals>
                <goal>read-project-properties</goal>
            </goals>
            <configuration>
                <files>
                    <file>${basedir}/${environment}.properties</file>
                </files>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

现在,我遇到的问题如下:我已经配置了一个简单的存储库来存储内容,如下所示:

<distributionManagement>
    <repository>
        <id>localRep</id>
        <url>file:${localRepositoryLocation}</url>
    </repository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)

运行时mvn deploy,$ {localRepositoryLocation}不会被替换.

[INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ SomeApp ---
Uploading: file:${localRepositoryLocation}/SomeApp/SomeApp/1.0.0/SomeApp-1.0.0.war
Uploaded: file:${localRepositoryLocation}/SomeApp/SomeApp/1.0.0/SomeApp-1.0.0.war (5754 KB at 18322.3 KB/sec)
Uploading: file:${localRepositoryLocation}/SomeApp/SomeApp/1.0.0/SomeApp-1.0.0.pom
Uploaded: file:${localRepositoryLocation}/SomeApp/SomeApp/1.0.0/SomeApp-1.0.0.pom (7 KB at 2051.1 KB/sec)
Run Code Online (Sandbox Code Playgroud)

另外,我应该注意到我也在mojo版本中使用了该插件,它产生了完全相同的行为.因此,如果来自两个不同提供商的相同插件具有相同的结果,那么我必须在这里做错事.

有人能帮忙吗?

亲切的问候,安德烈

maven

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