相关疑难解决方法(0)

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

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

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

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

configuration maven-2 properties-file

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

Ant从属性文件中替换令牌

我想用Ant替换源文件中的标记:

some test ${foo} other text ...
Run Code Online (Sandbox Code Playgroud)

标记包含在属性文件中,例如:

foo=1
Run Code Online (Sandbox Code Playgroud)

实际上,如果源文件中的标记类似于'@@ foo @@'或'foo',但是我无法替换整个标记,这很容易:$ {foo}

我几年前就成功了,但这次我失败了......

谢谢

ant

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

如何在Eclipse项目中构建期间过滤资源?

我有一个使用多个配置文件的应用程序(这里只考虑appli.properties).这些文件包含几个取决于环境的值.我们可以找到一些信息,例如:

server.port=${envi.server.port}
Run Code Online (Sandbox Code Playgroud)

另一方面,我有一组属性文件,每个环境一个(dev.properties,homolo.properties等).它们包含配置文件中某些属性的值.我们可以在这里找到这种属性:

envi.server.port=4242
Run Code Online (Sandbox Code Playgroud)

我的构建由Maven2处理.一切都很好.

但是,我现在需要将我的项目导入Eclipse.我主要关心的是配置文件过滤.事实上,如果我不为我的项目我的Eclipse的参数做任何修改(一后MVN日食:日食命令),那么我所有的配置文件将保持属性键(即${envi.server.port}),而不是它们的值.有了这样的配置文件,我的应用程序将无法在Eclipse中运行...

所以我试了两个解决方案:

  • 一个完整的Maven解决方案,使用m2eclipse插件.我在项目配置中添加了Maven Builder,然后,每次构建时,都会对文件进行过滤.
  • Ant(仅在Eclipse中使用).我几乎没有定义一个模拟Ant中文件的Maven2过滤的任务.此任务仅专用于过滤,无需编译.

这两种解决方案的常见问题是,每次操作都会进行过滤(基本上可以节省Java类版本),然后需要时间.然而,第二种解决方案比第一种解决方案(超过10秒)更快(3秒).

您如何看待我的方法?你会怎样以更好的方式做到这一点?

eclipse ant configuration maven-2 filtering

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

ANT"替换"任务不扩展"replacetoken"标记中的属性

构建之后,我需要修改一个HTML文件,指向客户端下载新应用程序.

我搜索一个令牌; 用链接和令牌替换它:

<replace file="index.html" >

    <!-- this searches for literal text ${MyTOKEN} -->
    <!-- does not "expand" ${MyTOKEN} before searching -->
    <replacetoken>${MyTOKEN}</replacetoken>

    <replacevalue>"some link" <br> ${MyTOKEN}</replacevalue>
</replace>
Run Code Online (Sandbox Code Playgroud)

此代码不能移动到模板构建脚本中,因为replacetokenreplacevalue标签将文本作为文字 - 它们不在expandproperties我的ANT版本中.

我想使用属性来定义"some link"MyTOKEN值.


使用属性的解决方法"some link"filterchain在替换后使用a 并复制文件:

<copy file="index.html" tofile="index2.html" >
    <filterchain>
        <!-- this converts the ${xxx} properties into their values -->
        <expandproperties />
    </filterchain>
</copy>
Run Code Online (Sandbox Code Playgroud)

但是这replace已经完成了 - 所以这意味着我仍然需要将MyTOKEN值直接硬编码到构建脚本中.

  • 我想在构建脚本之外定义我的令牌,并在构建脚本中引用它 …

ant replace

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