小编Bee*_*Dog的帖子

如何让maven-gpg-plugin使用环境变量或命令行属性的密码呢?

我已经看到了:在使用Maven发布插件时避免使用gpg签名提示,但它适用于非常旧版本的maven,而我使用的是3.2.2,因此相同的解决方案不适用.

基本上,无论命令行上的属性组合,pom.xml中的属性,还是环境变量,我都无法获取maven gpg插件以避免弹出代理对话框.

出于安全原因,我们已决定不在settings.xml中以纯文本形式包含密码,因为这是一个糟糕的主意.使用加密的maven东西只是将主密钥移动到不同的纯文本文件.

软件版本:

$ gpg --version
gpg (GnuPG) 2.1.2
libgcrypt 1.6.2

$ mvn --version
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T08:51:42-05:00)
Run Code Online (Sandbox Code Playgroud)

我试过了

mvn -Dgpg.passphrase='lolpassphrase'
Run Code Online (Sandbox Code Playgroud)

使用pom.xml中的属性从环境中获取它:

        <properties>
            <gpg.keyname>E7C89BBB</gpg.keyname>
            <gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
        </properties>
Run Code Online (Sandbox Code Playgroud)

然后:

GPG_PASSPHRASE='lolpassphrase' mvn install 
Run Code Online (Sandbox Code Playgroud)

编辑:显然我的gpg代理正在妨碍我,如果我在pom.xml属性中设置实际的密码,GPG代理仍会提示我:(

        <properties>
            <gpg.keyname>E7C89BBB</gpg.keyname>
            <gpg.passphrase><![CDATA[lolcomplicatedpassphrase]]></gpg.passphrase>
        </properties>
Run Code Online (Sandbox Code Playgroud)

必须有一种方法可以做到这一点,而无需在某处保留密码的纯文本,但我无法使用正确的谷歌找到这个答案,希望你们可以帮助我.

gnupg maven

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

如何让sbt获取用groovy编写的测试?

我找到了sbt-groovy插件,它恰当地编译了测试和主要来源.但是,definedTests密钥总是空的; SBT从未发现任何常规测试.我已用一个非常简单src/test/groovy/Test.groovy的单一方法验证了这一点,其中一个方法是注释的@Test,应该由junit-interface选取.

我认为问题的根源在于sbt-groovy插件需要在自己的插件源代码中定义任务"definedTests" .这个任务提供了一个Seq[TestDefinition].

看看SBT本身如何填充序列显示它使用来自scala编译器的附加输出(这也适用于编译java文件,因此它可以开箱即用,适用于java),这个Analysis类由一个类填充.IncrementalCompiler

我已经摆弄了taskdef,但我不确定我是否在正确的道路上.关于这些东西的文档相当稀疏,或者与它有很大的联系IncrementalCompiler.

在sbt-groovy中我需要用什么代码来生成Seq[TestDefinition]满足SBT的代码,以便我可以运行用Groovy编写的测试(由junit-interface选取)?

sbt

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

标签 统计

gnupg ×1

maven ×1

sbt ×1