将设置文件与控制Nexus凭据的属性一起使用:
<ivysettings> <property name="repo.host" value="default.mycompany.com" override="false"/> <property name="repo.realm" value="Sonatype Nexus Repository Manager" override="false"/> <property name="repo.user" value="deployment" override="false"/> <property name="repo.pass" value="deployment123" override="false"/> <credentials host="${repo.host}" realm="${repo.realm}" username="${repo.user}" passwd="${repo.pass}"/> .. ..</ivysettings>
运行构建时,您可以指定真实的用户名和密码:
更新/增强ant -Drepo.user=mark -Drepo.pass=s3Cret
将密码存储为文件系统上的属性需要加密。
Jasypt有一个命令行程序,可以生成加密的字符串:
$ encrypt.sh verbose=0 password=123 input=s3CrethXiMYkpsPY7j3aIh/2/vfQ==
可以将其保存在构建的属性文件中:
username=billpassword=ENC(hXiMYkpsPY7j3aIh/2/vfQ==)
以下ANT目标将解密所有加密的ANT属性:
<target name="decrypt"> <taskdef name="groovy" classname="org.prehaus.groovy.ant.Groovy" classpathref="build.path"/> <groovy> import org.jasypt.properties.EncryptableProperties import org.jasypt.encryption.pbe.StandardPBEStringEncryptor StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor() encryptor.setPassword(properties["master.pass"]) Properties props = new EncryptableProperties((Properties)properties, encryptor); props.propertyNames().each { properties[it] = props.getProperty(it) } </groovy></target>
当然,要使此工作有效,需要在构建过程中指定用于加密属性的密码。
ant -Dmaster.pass=123
这意味着该解决方案仅适用于隐藏静态数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)