小编Mik*_*ike的帖子

延迟构建后的Jenkins工作

我有一个Jenkins工作,它将我们的Java项目编译并发布到JBoss服务器.显然,服务器需要时间来启动和部署新代码.我有第二个Jenkins作业,它针对正在运行的JBoss实例运行Selenium测试.

我想让第二个(Selenium)工作作为第一个工作的后期构建动作自动执行(我已经完成了这个),但是我希望它延迟2分钟.延迟时间的数量并不重要,但我无法找到描述如何延迟构建后作业的开始的任何地方.我怎么做到这一点?

post-build-event jenkins

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

使用Maven Mojo sql的错误:执行

TL; DR版本:我希望能够使用Maven Mojo SQL插件通过mvn命令行随意创建/删除我的数据库模式中的任何给定表(或者为这些表加载数据).怎么样?


我是一名长期的Java开发人员,但在大多数情况下,我一直生活在一个ant基于世界的领域.我喜欢它的力量和显而易见性ant,以及它给我带来的控制力.然而,在我的新工作中,有一种推动使用maven.所以我决定使用我在家工作的项目来学习它.

我在不同的个人项目上设置的一件事是能够ant从命令行完全设置和拆除我的Postgres数据库.我可以单独或一致地对任何表格,序列和集成测试数据进行切片和切块.当然,这意味着我有大约一个ant目标,但它的效果非常好.我喜欢这个; 多年来它一直很好用.

在研究如何在周末在Maven中完成此任务时,我找到了Mojo SQL Maven插件.在查看使用情况页面(我使用该术语时,因为它实际上只是一个没有解释的半示例)和示例页面后,我能够对我的pom.xml文件进行一些更改.我在示例(postgressql)中修复了一些明显的拼写错误,并引用了PostgreSQL JDBC页面以确保我的JDBC连接字符串正确.我将粘贴所有pom.xml(修改为保护有罪)下面:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany.myapp</groupId>
    <artifactId>myapp</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>myapp</name>
    <url>http://maven.apache.org</url>

    <repositories>
        <repository>
            <id>JBoss</id>
            <url>https://repository.jboss.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.0.0.CR7</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>sql-maven-plugin</artifactId>
                <version>1.5</version>

                <dependencies>
                    <dependency>
                        <groupId>postgresql</groupId>
                        <artifactId>postgresql</artifactId>
                        <version>8.3-606.jdbc4</version>
                    </dependency>
                </dependencies>

                <configuration> …
Run Code Online (Sandbox Code Playgroud)

postgresql maven sql-maven-plugin

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

在Spring上下文中使用Maven settings.xml属性

settings.xml我的~/.m2目录中有一个Maven 文件; 它看起来像这样:

<settings>
    <profiles>
        <profile>
            <id>mike</id>
            <properties>
                <db.driver>org.postgresql.Driver</db.driver>
                <db.type>postgresql</db.type>
                <db.host>localhost</db.host>
                <db.port>5432</db.port>
                <db.url>jdbc:${db.type}://${db.host}:${db.port}/dbname</db.url>
            </properties>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>mike</activeProfile>
    </activeProfiles>
    <servers>
        <server>
            <id>server_id</id>
            <username>mike</username>
            <password>{some_encrypted_password}</password>
        </server>
    </servers>
</settings>
Run Code Online (Sandbox Code Playgroud)

我想两次使用这些属性

  • 一旦进入Maven的integration-test阶段就建立并拆除我的数据库.使用Maven过滤,这非常有效.
  • 第二次运行我的Spring应用程序时,这意味着我需要servlet-context.xml在Maven resources:resources阶段将这些属性替换为我的文件.对于上部的属性settings.xml,例如${db.url},这可以正常工作. 我无法弄清楚如何将我的数据库用户名和(解密的)密码替换为Spring servlet-context.xml文件.

servlet-context.xml文件的相关部分如下:

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName"><value>${db.driver}</value></property>
    <property name="url"><value>${db.url}</value></property>
    <property name="username"><value>${username}</value></property>
    <property name="password"><value>${password}</value></property>
</bean>
Run Code Online (Sandbox Code Playgroud)

这里的最终目标是让每个开发人员拥有自己的Maven设置(以及他们自己的机器上的数据库进行集成测试)......以及Jenkins服务器上的类似设置.我们不想共享通用用户名/密码/等.

spring maven

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

Spring + Mockito测试注射

我的问题非常类似于将Mockito模拟注入Spring bean时引发的问题.事实上,我相信那里接受的答案可能对我有用.但是,我有一个问题的答案,然后进一步解释,如果答案实际上没有我的答案.

所以我按照上述帖子中的链接访问了Springockito网站.我改变了我的内容test-config.xml,包括类似的内容:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mockito="http://www.mockito.org/spring/mockito"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.mockito.org/spring/mockito http://www.mockito.org/spring/mockito.xsd">

...

    <mockito:mock id="accountService" class="org.kubek2k.account.DefaultAccountService" />
...
</beans>
Run Code Online (Sandbox Code Playgroud)

目前www.mockito.org重定向似乎有问题,所以我在https://bitbucket.org/kubek2k/springockito/raw/16143b32095b/src/main/resources/spring/mockito.xsd找到了XSD代码并更改了最终条目在xsi:schemaLocation中指向此bitbucket链接.

mvn test然后运行产生以下错误(为了可读性添加了换行符):

Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
    Line 43 in XML document from class path resource [spring/test-context.xml] is invalid;
    nested exception is org.xml.sax.SAXParseException; lineNumber: 43; columnNumber: 91;
    The prefix "mockito" for element "mockito:mock" is not bound.
Run Code Online (Sandbox Code Playgroud)

所以关于Springockito的问题是:是否有可能包括这个?我错过了什么?

现在,进一步解释......

我有一个接口,其实现我正在尝试测试:

public interface MobileService {
    public Login login(Login login);
    public User getUser(String accessCode, Date birthDate);
} …
Run Code Online (Sandbox Code Playgroud)

spring mockito

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

忽略声纳中的重复导入语句

我有一个正在由Sonar 3.0.1进行分析的Groovy项目.我们使用声纳探测器打开了重复的代码检测.

在一组文件中,它检测到11行重复的import语句.在另一组文件中,它检测到15行重复的成员声明.由于这个项目清楚地分离了数据库与显示对象(即使它们大部分相似,因此重复的成员声明),我想配置Sonar忽略这些重复集 - 我们认为它们是可接受的重复.

我怎么能告诉Sonar忽略重复的导入和/或成员声明,​​但是仍然因为方法中的重复代码而对我大喊大叫?

groovy code-duplication sonarqube

6
推荐指数
0
解决办法
2103
查看次数

双嵌套EL变量?

我正在使用Spring MVC作为我的控制器,JSP是我的表示层.

在我的Spring控制器中,我有:

model.put("issues", dataManager.getIssues());
model.put("functions", dataManager.getFunctions());
Run Code Online (Sandbox Code Playgroud)

所以现在在我的JSP中,我可以访问

${requestScope['issues']}
${requestScope['functions']}
Run Code Online (Sandbox Code Playgroud)

这一切都很好.但是为了我的代码是可扩展的,我想用来存储变量名issuesfunctions数据库,然后将通过一个属性来访问内部configs多数民众赞成被环绕在物体.所以我最终想要的是以下内容:

<c:forEach items="${configs}" var="cfg">
    <c:if test="${cfg.configType == 'select'}">
        <th>${cfg.header}</th>
        <td><myTagLib:select values="${requestScope['${cfg.selectorName}']}" /></td>
    </c:if>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

${cfg.selectorName}将举行要么issues还是functions在这个例子中.

jsp el

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

无法在IntelliJ IDEA 11 Ant构建脚本中解析符号'scp'

我在Ubuntu Linux上运行IntelliJ IDEA 11.我有一个现有的项目,我已经使用构建脚本导入到IDEA中,该脚本执行大量<scp>任务.IntelliJ强调了我的所有<scp>任务并给了我一些信息,cannot resolve symbol即使我jsch-0.1.42.jar在IntelliJ中的Global Classpath以及此特定Ant文件的Additional Classpath上都有.

无法解析符号 Ant附加类路径

我需要做什么才能使IntelliJ识别<scp>为有效的任务?

ant scp intellij-idea

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

java中该类内部类的实例

在这里,我宣布同一类中的类动物实例.在c中它被认为是一个错误:

struct demo{
        int anyvar;
        struct demo anyvar1;
};
Run Code Online (Sandbox Code Playgroud)

因为它应该是一个无限的声明循环.

然后,为什么Java中允许这个代码?

class Animal{
    Animal object1 = new Animal();

    public static void main(String[] args)
    {     
            Animal obj = new Animal();
            obj.dostuff();
    }

    public void dostuff()
    {
           System.out.println("Compiles");
           object1.dostuff();
    }

    public void keepdoingstuff()
    {
             System.out.println("Doing Stuff...");

             object1.keepdoingstuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
140
查看次数