我已经将一个工件归档为构建的最后一步,它可以像这样:https://xxx.ci.cloudbees.com/job/xxx/52/artifact/target/xxx-1.2.1-SNAPSHOT -r8304-20130807-1507-app.zip
如何在促销过程中轻松访问工件?请注意,我需要访问特定的版本,而不是最新的成功版本.
升级过程的目标是将工件复制到S3,我们的部署作业将从中进一步处理它.因此,我可以将构建#52推广到开发(将其复制到特定的S3存储桶),稍后将构建#50推广到生产等等.
理想情况下,我可以在shell脚本中访问工件来重命名文件等.是否有环境变量来访问构建的存档工件,我找不到或应该如何完成?$BUILD_URL并且$JOB_URL已经特定于促销流程,并且不会在促销作业的shell脚本中指向构建本身.
使用复制工件插件,我只能复制促销过程中其他构建的工件,我不需要这样做.
我们当前的连接配置如下所示:
MongoClientOptions.builder()
.autoConnectRetry(true).maxAutoConnectRetryTime(1200000)
.socketTimeout(30000).connectTimeout(15000).build();
// SocketTimeout: 30s, ConnectionTimeout 15s, ReconnectRetry: 20min
Run Code Online (Sandbox Code Playgroud)
autoConnectRetry并且maxAutoConnectRetryTime在当前版本(源代码)中已弃用并将被删除:"此方法没有替代.使用connectTimeout属性来控制连接超时."
我认为重试和连接超时是两个不同的事情.有谁知道为什么这会改变以及这有什么(内部)影响?
我正在尝试使用Amazon S3来托管我的Maven工件.我已将以下内容添加到我的pom.xml中:
<distributionManagement>
<repository>
<id>maven.xxx.com-release</id>
<name>AWS S3 Release Repository</name>
<url>s3://maven.xxx.com/release</url>
</repository>
<snapshotRepository>
<id>maven.xxx.com-snapshot</id>
<name>AWS S3 Snapshot Repository</name>
<url>s3://maven.xxx.com/snapshot</url>
</snapshotRepository>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>org.springframework.build</groupId>
<artifactId>aws-maven</artifactId>
<version>5.0.0.RELEASE</version>
</extension>
</extensions>
</build>
Run Code Online (Sandbox Code Playgroud)
这工作正常,我的快照存储在S3上.现在我试图在另一个项目中引用工件:
<repositories>
<repository>
<id>maven.xxx.com-release</id>
<name>AWS S3 Release Repository</name>
<url>s3://maven.xxx.com/release</url>
</repository>
<repository>
<id>maven.xxx.com-snapshot</id>
<name>AWS S3 Snapshot Repository</name>
<url>s3://maven.xxx.com/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<extensions>
<extension>
<groupId>org.springframework.build</groupId>
<artifactId>aws-maven</artifactId>
<version>5.0.0.RELEASE</version>
</extension>
</extensions>
</build>
Run Code Online (Sandbox Code Playgroud)
当我运行时$ mvn deploy -X,我收到以下错误:
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T15:51:42+02:00)
Maven home: /usr/local/Cellar/maven/3.2.2/libexec
Java version: 1.8.0_11, vendor: Oracle Corporation …Run Code Online (Sandbox Code Playgroud) 我们目前正在运行由一组JMS队列(无主题)连接的分布式Java应用程序.Java应用程序大量使用Apache Camel框架,该框架也用于通过JMS进行通信.作为JMS提供商,我们正在使用ActiveMQ.我们对排队解决方案的要求在功能方面非常基础 - 在某种程度上可与本地Java队列和Camel SEDA队列相媲美:
我们不需要持久队列,因为消息在进入排队系统之前存储在数据库中.到目前为止,ActiveMQ在设置上花了一些时间后对我们来说效果很好.但是,有两个问题因为我们正在寻找不同的解决方案:
我们知道AMQ从版本5.9开始支持使用Zookeeper的HA.不过,不久前,我们开始考虑/评估Hazelcast作为AMQ的替代品.很长一段时间,Hazelcast看起来非常迷人,因为它似乎满足了我们所有的要求,并且似乎比使用Zookeeper的AMQ更简单.此外,Camel通过其Hazelcast SEDA功能为使用Hazelcast作为排队解决方案提供了很好的支持.鉴于Hazelcast似乎是我们完美替代AMQ的事实,我们不知道网上没有太多可用的信息讨论Hazelcast作为JMS的(严重)替代品.因此,我们想知道:
我们使用两个领域(一个用于散列密码,另一个用于生成的纯文本密钥) - 这是按预期工作的.
使用单个域,我们可以DisabledAccountException在我们的域中抛出异常,protected AuthenticationInfo doGetAuthenticationInfo(final AuthenticationToken authToken)并在我们的应用程序中明确捕获这样的异常.
现在我们有两个领域,所有例外都是Shiro-internal抓住的; 所以,如果一个领域失败,第二个领域也可以尝试.但是,这种重定向只会将泛型抛给AuthenticationExceptions我们的应用程序.
是否有多个领域的解决方法,以便我们可以有更多特定的例外(要知道帐户是否被锁定,凭据是完全错误的,......)?
面对PostgreSQL不安全的一些大胆的主张(同时欢呼MySQL的安全性)我想得到别人的意见:
我已经说过PostgreSQL比MySQL更具安全感(支持角色,更多的身份验证方法......),但数据库本身对应用程序的安全性影响非常小.或者我在这里忽略了任何争论?
[1] MySQL是否比PostgreSQL(在Perl/DBI下)更能抵抗SQL注入攻击?
PS:MySQL和PostgreSQL都是很棒的产品 - 不需要任何非安全相关的讨论;-)
我正在使用morphia github 1.2.2版.我知道如何在morphia实体上的一个字段上注释索引,但有没有办法在两个字段的组合上注释索引.例如,如果我想在字段a和b上有一个复合索引,那么下一个类的注释是什么.
@Entity
public class TestClass
{
@Property("a")
private int fieldA;
@Property("b")
private int fieldB;
//how to annotate index of compound key fieldA and fieldB using morphia index annotation?
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我们计划使用Hazelcast排队Apache Camel消息以及作为辅助Hibernate缓存.
假设我们将队列配置为使用Integer.MAX_VALUE(可能不适合内存)而没有支持映射:如果正在使用所有内存,会发生什么?我在文档中找不到任何与此场景有关的内容.
<hazelcast>
...
<queue name="tasks">
<!--
Maximum size of the queue. When a JVM's local queue size reaches the maximum,
all put/offer operations will get blocked until the queue size
of the JVM goes down below the maximum.
Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0.
-->
<max-size-per-jvm>0</max-size-per-jvm>
<!--
Name of the map configuration that will be used for the backing distributed
map for this queue.
-->
<backing-map-ref></backing-map-ref>
</queue>
Run Code Online (Sandbox Code Playgroud)
与地图相同:如果 …
当我们执行发布时,正在按预期创建发布工件和标记.但是,项目未正确更新到下一个(快照)版本.
发布的示例配置:

控制台日志的相关部分:
[RELEASE] Committing release version on branch 'master'
[RELEASE] Creating tag '1.3.14'
[RELEASE] Pushing branch 'master' to 'ssh://git@git.cloudbees.com/xxx/yyy.git'
[RELEASE] Pushing tag '1.3.14' to 'ssh://git@git.cloudbees.com/xxx/yyy.git'
[RELEASE] Changing POMs to next development version
[RELEASE] Committing next development version on branch 'master'
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)
该项目在Git中的地位如预期:
$ git pull origin master
From ssh://git.cloudbees.com/xxx/yyy
* branch master -> FETCH_HEAD
Already up-to-date.
$ git show --summary
commit df10d905c24c1cbf8d0b6992ab366ac5dcba470b
Author: CloudBees DEV@Cloud <nobody@cloudbees.com>
Date: Mon Jul 29 09:04:38 2013 +0000
$ git remote show origin …Run Code Online (Sandbox Code Playgroud) java ×4
hazelcast ×2
jenkins ×2
mongodb ×2
mongodb-java ×2
queue ×2
amazon-s3 ×1
apache-camel ×1
cloudbees ×1
deployment ×1
git ×1
hibernate ×1
maven ×1
memory ×1
morphia ×1
mysql ×1
postgresql ×1
release ×1
security ×1
shiro ×1