小编Cae*_*alf的帖子

在Maven中查找兄弟模块之间常见依赖关系的工具?

我必须创建一个新的maven项目,将旧项目迁移到maven.所以我得到了这样的结构

parent
|
\-- project 1
|
\-- project 2
Run Code Online (Sandbox Code Playgroud)

project 1并且project 2拥有大量的依赖关系,其中很多都是相互共同的.我想知道,我在互联网上找不到的是,如果有一个工具,我可以找到这些常见的依赖关系,所以我可以将它们迁移到父pom?

例如,如果我向这个工具提供两个带有元素的poms

... PROJECT 1 POM
<dependencies>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>A</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>B</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
</dependencies>
...

.. PROJECT 2 POM
<dependencies>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>B</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>C</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
</dependencies>
...
Run Code Online (Sandbox Code Playgroud)

我想要输出

.. OUTPUT FROM COMPARING BOTH
<dependencies>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>B</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
</dependencies>
...
Run Code Online (Sandbox Code Playgroud)

dependencies maven

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

在Hudson/Jenkins中将生成的文件夹从一个作业复制到另一个作业

我的Hudson配置中有两个工作.我们称他们为A和B.

作业A专门用于生成文件夹application_home.此文件夹是一个随时可用的安装应用程序主文件夹.

工作B是"包装 - 一起安装 - 工作".它需要复制作业A生成的application_home来生成安装程序.我的问题是经过一些调查后,我无法以一种简单的方式做到这一点.

我可以使用shell脚本,但后来我需要知道作业A路径加上其工作区是获取application _ home文件夹.

有更简单的方法吗?

编辑

我知道Copy Artifact Plugin.问题是它只复制工件.我需要按原样复制文件夹application _ home,因为它已经在安装程序中使用的结构中.如果有办法使用这个插件只复制文件夹,我还没有找到它.

编辑2.答案:

好的,你可以使用Copy Artifact Plugin来完成它.你需要

  • 将其配置设置为"从最新完成的构建的WORKSPACE复制".
  • Artifacts设置为复制选项文件夹如下:target/application_home/**
  • 目标目录设置为您想要的位置:installation_bundle_folder/application_home.

它完成了:)

hudson jenkins

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

Java 中的持久阻塞队列?

TL; 博士; 我需要知道是否有一个具有持久阻塞队列的库。

我有一个经典的生产者/消费者计划。他们共享一个LinkedBlockingQueue来共享数据,我BlockingQueue#take在消费者中使用方法,因为我需要他们永远活着等待新元素。

问题是我有很多数据,我不能丢失它们。即使在消费者停止之后,生产者也可以坚持生成一些数据。我正在考虑H2在达到某个阈值后实现我的 BlockingQueue ta 用于存储/获取数据。我的主要问题是我需要性能,我需要按照元素的创建顺序使用它们。

是否有持久阻塞队列的实现可以用于这样的事情?如果没有,对我实现这样的目标有什么建议吗?

java concurrency persistent-storage blockingqueue

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

为什么没有guava Objects.equal(Object,Object)到原始类型?

为什么Objects.equal每个原始类型都没有接收作为参数?

我知道你可以通过#valueOf自动装箱或让每个原语自动装箱,但是你不会因此而失去性能吗?这是我一直想知道的事情.

想象一下,我有类似的东西

public class Foo {
    private final int integerValue;
    private final boolean booleanValue;
    private final Bar bar;

    public Foo(int integerValue, boolean booleanValue, Bar bar) {
        this.integerValue = integerValue;
        this.booleanValue = booleanValue;
        this.bar = bar;
    }

    @SuppressWarnings("boxing")
    @Override
    public boolean equals(Object object) {
        if (object instanceof Foo) {
            Foo that = (Foo) object;

            return Objects.equal(this.integerValue, that.integerValue)
                     && Objects.equal(this.booleanValue, that.booleanValue)
                     && Objects.equal(this.bar, that.bar);
        }
        return false;
    }

    // hashCode implementation using guava also.
}
Run Code Online (Sandbox Code Playgroud)

这是实施的最佳方式equals …

java performance guava

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

Hibernate"没有会话或会话被关闭",即使在Transactional方法中绑定了Session

我使用的是Spring 3.0.5,Hibernate 3.6.7和Vaadin.

我有一个像这样的简单实体

@Entity
public class Foo {
    @OneToMany(fetch = FetchType.LAZY)
    private Collection<Bar> bars;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我有一个对话窗口,我从上下文中得到它应该显示'foo'中的'bars'.

@Component
@Scope("prototype")
public class FooBarDialogImp extends Window implements FooBarDialog {
    @Transactional(readOnly = true)
    public void populate(Foo foo) {
         ...
         for (Bar bar : foo.getBars()) {
             // populate the dialog with bar information
             ...
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

当用户要求显示foo栏时,我会做这样的事情

 public class FooController {
 ...
     public void showFooBars(Foo foo) {
         FooBarDialog dialog = context.getBean(FooBarDialog.class);

         dialog.populate(foo);
         showDialog(dialog);
     }
 }
Run Code Online (Sandbox Code Playgroud)

但问题是我从hibernate获得了"无会话"异常.我更改了代码以注入会话工厂并查看是否存在绑定会话.我不知道我做错了什么.有人有想法吗?

java spring hibernate transactions transactional

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