小编Sti*_*ens的帖子

Maven:在处理多个配置文件时使用通用/共享插件

我有一个使用多个配置文件的项目.每个配置文件使用以下插件:

  • Maven的编译器插件
  • Maven的资源 - 插件
  • Maven的antrun-插件
  • Maven的万无一失,插件
  • Maven的战争插件

然而,以粗体标记的那个是唯一的插件,其中配置文件之间存在差异(将使用antrun插件复制不同的配置文件).所有配置文件的其他4个插件配置完全相同.

现在的问题是:是否有一些方法可以将这些常见插件只包含一次,但默认情况下仍然会将它们用于所有配置文件?

就像是:

<shared><plugin1><plugin2>...</shared>
<profile><plugin3></profile>
<profile><plugin3></profile>
...

谢谢,
Stijn

maven-2

10
推荐指数
2
解决办法
5208
查看次数

使用Wicket 1.5提供动态内容

我有我的Wicket 1.4代码,有一个链接下载以编程方式生成的文件:

protected class MyWebResource extends WebResource {
    public IResourceStream getResourceStream() {
        .....
        return new StringResourceStream(myString, "text/plain");
    }
}

ResourceLink<?> downloadLink = 
   new ResourceLink<Object>("downloadLink", new MyWebResource());
Run Code Online (Sandbox Code Playgroud)

一切都很好.现在我升级到Wicket 1.5.现在WebResource不再存在了.

我在网上搜索了很多年,当然这必须是一个简单的问题,有一个简单的解决方案吗?唉,我找不到.

wicket wicket-1.5

8
推荐指数
1
解决办法
3141
查看次数

什么时候需要重新进口所有的maven项目?

偶尔,在SVN更新后,POM已更改,IntelliJ似乎没有注意到这一点,并且您开始有奇怪的行为(不存在的类,方法......).我现在知道重新导入所有maven项目解决了这个问题,但我不明白为什么这是必要的.

我检查过'自动导入Maven项目'.

我不认为这是一个错误,因为在第12版中已经是这种情况,仍然在13.

intellij-idea maven

8
推荐指数
1
解决办法
2872
查看次数

Liferay导出/导入LAR:自动化

有没有办法从liferay服务器A创建/导出LAR并使用脚本甚至maven/hudson插件在liferay服务器B中导入?我正在使用Liferay 6.0.5.

谢谢,Stijn

liferay

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

无效的Hibernate警告?"字段上的@Access(AccessType.PROPERTY)无效"

我有以下实体类用户:

public class User implements Serializable {

    @Column(length = 10, name = "user_type")
    @Access(AccessType.PROPERTY)
    private String userTypeS;

    @Transient
    private UserType userType;
    ...
    public void setUserType(UserType userType) {
        this.userType = userType;
        this.userTypeS = this.userType.getType();
    }

    protected void setUserTypeS(String userTypeS) {
        this.userTypeS = userTypeS;
        userType = UserType.toUserType(userTypeS);
    }
Run Code Online (Sandbox Code Playgroud)

UserType是一个枚举.这个问题是我不能简单地使用@Enumerated注释来映射UserType,因为代码中枚举的表示不同于,例如:

public enum UserType {
CUSTOMER_NON_PRO("custnop") ...
Run Code Online (Sandbox Code Playgroud)

与实体协作时,我希望能够将枚举设置为userType而不是它的String表示.为此我创建了一个公共setter,它设置enum(userType)并将其转换为它的String表示(用hibernate映射).类似地,有一个受保护的setUserTypeS必须由hibernate调用,并将String userType映射到枚举UserType.

当然,hibernate必须使用setter来填充实体.在我们的项目中,最好在getters/setter上设置属性本身的注释.因此,hibernate将使用内省直接设置属性值(从而绕过setter).对于userTypeS,我指出访问类型是PROPERTY(io FIELD),因为hibernate将调用setUSerTypeS.

所有这一切顺利进行."问题"是我们的日志中会看到以下警告:

org.hibernate.cfg.AnnotationBinder - 在字段上放置@Access(AccessType.PROPERTY)没有任何效果.

此警告似乎不正确.如果我将从@Access(AccessType.PROPERTY)字段userTypeS中删除,那么hibernate将不会调用setter,因此不会设置enum userType.因此,放置@Access(AccessType.PROPERTY)确实有影响.

此警告信息是无效还是过时,或者我是否误解了某些内容?

谢谢,
Stijn

java hibernate jpa

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

scrollTop()在chrome中返回0

我想检查页面是否在完成加载后滚动并且我正在使用此代码:

$(document).ready(function(){   
    alert($(window).scrollTop());
});
Run Code Online (Sandbox Code Playgroud)

它适用于Firefox,但总是0在Chrome中返回.为什么是这样?

javascript jquery google-chrome

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

Maven:结合网络项目

我有以下Maven项目设置:

  • PM-核心
  • PM-Web(依赖于PM-Core)
现在,这个项目用于几个客户端,但是对于每个客户端,存在一些小的差异:大多数配置文件的差异,但是一些客户端还需要额外的java文件(可能不会为其他客户端安装).

我一直在考虑如何用maven来支持这个,但我仍在寻找完美的解决方案.

我能想到的最好的解决方案是为每个客户端创建一个单独的maven项目(例如PM-CLIENT1,...),它只包含客户端特定的配置文件和其他java文件或jsp,.... 下一步是将PM-Web项目和客户端项目视为一个Web项目,这意味着:将它们组合(打包)为1个war文件,其中来自客户端项目的文件优先于PM-Web项目中的文件.

更具体:mvn package在PM-Client1上运行将从PM-Web获取所有内容,从PM-Client1添加/替换文件,然后将其打包成单个战争.

所以问题是:如何用maven实现这一目标?

maven-2 webproject include

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

Maven - 传递参数以在exec-maven-plugin中使用

在我的pom中,我添加了exec-maven-plugin来调用一个生成文件的java类.此类需要将一些参数传递给main方法,其中一个是输入文件的位置(在项目外部).到目前为止,我一直在使用相对路径,这工作正常:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>com.laco.projectmaster.util.LanguageGenerator</mainClass>
                <arguments>
                    <argument>../PM-Config/dev/PMLanguage.xls</argument>
                    <argument>PM4.0</argument>
                    <argument>${project.build.outputDirectory}/com/laco/projectmaster/props/resources</argument>
                    <argument>ProjectMaster</argument>
                    <argument>Created during maven build (POM Version: ${pom.version})</argument>
                </arguments>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

现在我开始使用hudson来安装/打包和部署战争,我不能再使用这个相对路径了.简单我想,我只是在调用maven时传递输入文件的位置:

mvn clean package -Dlangdir = C:/ somedir

然后改变pom像:

<argument>${langdir}/PMLanguage.xls</argument>
Run Code Online (Sandbox Code Playgroud)

但是,此参数在此处仅被忽略.主类作为参数接收的路径变为null/PMLanguage.xls.参数本身在maven中可用,我使用antrun插件中的echo测试成功.正确的道路得到了回应.

你传递给maven的参数是否默认无论你在pom中引用它们在哪里都没有?

感谢任何帮助,
Stijn

maven-2 exec-maven-plugin

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

wicket从getHomePage创建一个动态返回类

我正在使用Wicket 1.5构建Web应用程序.我需要确定当前登录的用户是管理员还是普通用户,并为每个用户显示不同的页面.

我的代码:

public class HomePage extends WebApplication {
  private boolean flag = false;

  @Override
  protected void init(){do things}

  @Override
  public Session newSession(Request request, Response response) {
           ... some calculation ...
     return new HomePageWebSession(request);
  } 

  @Override
  public Class<? extends WebPage> getHomePage(){    
     if(flag){
        return Admin.class
     } else return User.class
  }
 }
Run Code Online (Sandbox Code Playgroud)

问题是getHomepage之前调用的newSession,我使用newSession来确定用户是否是Admin并初始化标志.另外我看到getHomePage之前newSession被调用多次.为什么getHomePage称为倍数,为什么getHomePage之前被称为newSession

谢谢你的帮助

session dynamic wicket-1.5

5
推荐指数
0
解决办法
519
查看次数

排除的类别仍计入总覆盖范围结果

我们最近已升级到SonarCube 4.3.2。在以前的版本中(不记得它是什么),可以选择Jacoco作为代码覆盖率分析器,并可以将Maven中的排除项定义为简单属性。

例如

<properties>
    <sonar.jacoco.excludes>*/cache/*:*/*Application.java</sonar.jacoco.excludes>
</properties>
Run Code Online (Sandbox Code Playgroud)

在此版本的SonarCube中,不再存在选择Jacoco的选项,因此我试图以其他方式使其工作。关于这个主题的很多很多帖子,但是都没有解决我的问题。我设法排除了类,但这些类在SonarCube中显示为0%(并降低了总覆盖率)。通过上述财产排除似乎不再起作用。

在我的pom中,我添加了以下插件:

<plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.6.0.201210061924</version>
        <configuration>
            <excludes>
                <exclude>**/SonarTest*</exclude>
            </excludes>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>report</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

配置似乎可以,因为在Jacoco报告中完全排除了该类。SonarTest已进行了部分测试,但使用此配置,Sonar在Sonar中显示为0%,因此似乎排除项在某种程度上起作用。我如何通知Sonar这些被排除的类在覆盖范围内应该被完全忽略。

maven jenkins jacoco sonarqube jacoco-maven-plugin

5
推荐指数
0
解决办法
574
查看次数