小编Rom*_*las的帖子

如何在Maven和Eclipse中管理多个Web应用程序的共享资源?

注意:我在这个问题的第一个版本中没有得到任何回复,因此我将其修改为更通用的...

上下文

我的项目分为几个maven模块和几个web应用程序.这是结构:

my-project
  + pom.xml
  +-- commons
  +-- persistence
  +-- ...
  +-- web-app-1
  +-- web-app-2
  +-- ...
Run Code Online (Sandbox Code Playgroud)

所有Web应用程序都共享公共资源,例如JS,CSS和图像文件.

web-app-X我决定创建另一个名为web-resourcesWAR项目的项目,而不是在每个项目中复制这些资源.结构如下:

my-project
  + pom.xml
  +-- commons
  +-- persistence
  +-- ...
  +-- web-app-1
  +-- web-app-2
  +-- ...
  +-- web-resources
       +-- pom.xml
       +-- src/main/webapp
            +-- web.xml (which is almost empty, just need to be present for Maven)
            +-- web_resources
                 +-- css
                 +-- images
                 +-- javascript
Run Code Online (Sandbox Code Playgroud)

Maven的

在Maven 2(或Maven 3,因为我刚刚将我的项目迁移到maven 3.0.2),这个配置很容易管理,因为所有都web-app-X声明web-resources为依赖:

<groupId>foo.bar</groupId>
<artifactId>web-app-1</artifactId>
...
<dependencies>
    <dependency>
        <groupId>foo.bar</groupId> …
Run Code Online (Sandbox Code Playgroud)

eclipse maven maven-eclipse-plugin

11
推荐指数
2
解决办法
7139
查看次数

在Tomcat上使用JaCoCo Java代理获取我的应用程序的代码覆盖率

我想使用JaCoCo和Sonar工具测量集成测试的代码覆盖率.

为此,我启动了使用JaCoCo代理配置的Tomcat 5.5,以便从JaCoCo获取转储文件.

因此,我JAVA_OPTS为此设定:

set JAVA_OPTS=-Xrs -XX:MaxPermSize=256m -XX:PermSize=256m -XX:NewRatio=3 -Xms512m -Xmx1024m -XX:+UseParallelGC -javaagent:C:\dev\servers\jacoco-agent.jar=destfile=C:\dev\servers\jacoco.exec,append=true,includes=my.application.*
Run Code Online (Sandbox Code Playgroud)

当我启动Tomcat时,C:\dev\servers\jacoco.exec会生成文件,但不会填充任何数据.

我的服务器配置中有没有忘记的东西?

问候.

java tomcat jacoco sonarqube

10
推荐指数
3
解决办法
3万
查看次数

加载位于H2数据库的类路径中的CSV文件

出于测试目的,我想使用SQL脚本和CSV文件创建和填充一些表.

所以我创建了一个像这样的SQL脚本:

CREATE TABLE T_FOO (
  ...
) as select * from CSVREAD('classpath:/foo.csv');
Run Code Online (Sandbox Code Playgroud)

foo.csv文件存在,位于src/test/resources.

当这个脚本在Eclipse上运行时(其中src/test/resources定义为源目录,因此包含在类路径中),我收到以下错误:

Caused by: java.io.FileNotFoundException: resource /foo.csv
    at org.h2.store.fs.FileSystemDisk.openFileInputStream(FileSystemDisk.java:388)
    at org.h2.util.IOUtils.openFileInputStream(IOUtils.java:708)
    at org.h2.tools.Csv.initRead(Csv.java:317)
    at org.h2.tools.Csv.readResultSet(Csv.java:217)
    at org.h2.tools.Csv.read(Csv.java:193)
    ... 49 more
Run Code Online (Sandbox Code Playgroud)

我做错了什么?如何正确使用classpath:协议加载CSV文件?

如果我把文件的完整路径(如... CSVREAD('C:\my-project\src\test\resources\foo.csv');),那么它的工作原理.但这不是我想做的原因:)

请注意,我使用最新版本的H2(1.3.153),因为我想使用该classpath:协议加载我的文件.

java testing h2 in-memory-database

9
推荐指数
1
解决办法
5024
查看次数

El表达怀疑

在JSP中的EL表达式我们可以使用${"1"+"2"}但不能${"Dark"+"Knight"}.为什么?

java jsp

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

SimpleJdbcTestUtils.executeScript和多行脚本

我想为我的单元测试加载SQL脚本文件.当我使用Spring 2.5.2时,我决定使用该SimpleJdbcTestUtils.executeScript()方法加载我的脚本文件,使用以下代码:

DriverManagerDataSource dataSource = ... // getting my DataSource defined in my Spring context
SimpleJdbcTemplate template = new SimpleJdbcTemplate(dataSource);
Resource resource = new ClassPathResource("/create-table.sql");
SimpleJdbcTestUtils.executeSqlScript(template, resource, true);
Run Code Online (Sandbox Code Playgroud)

如果我在create-table.sql文件中的一行中编写每个SQL语句,那么一切正常.但是如果我在多行上写一个语句,那么我会得到一个错误,即使语句是由a完成的;.

工作脚本:

CREATE TABLE T_FOO (ID NUMERIC PRIMARY KEY, DATEID TIMESTAMP, IS_ACTIVE INTEGER DEFAULT 0 NOT NULL);
CREATE TABLE T_BAR (ID NUMERIC PRIMARY KEY, DATEID TIMESTAMP, IS_ACTIVE INTEGER DEFAULT 0 NOT NULL);
Run Code Online (Sandbox Code Playgroud)

不工作的脚本:

CREATE TABLE T_FOO (
    ID NUMERIC PRIMARY KEY,
    DATEID TIMESTAMP,
    IS_ACTIVE …
Run Code Online (Sandbox Code Playgroud)

java spring jdbc hsqldb

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

Maven surefire 2.12不使用-Dtest参数运行特定测试

升级项目的所有Maven插件版本后,我遇到了以下问题:当我运行基本命令时mvn test -Dtest=SomeTest,构建完成,根本没有执行测试.实际上,我无法使用-Dtest参数运行任何测试(当然测试存在,并且在我执行时运行mvn test).

经过一些搜索后,问题似乎是由于使用了surefire 2.12插件.我已经测试了几个版本的Maven(2.2.1/3.0.2)和JUnit(4.7.x,4.8,4.10,甚至是3.8.x),但它们对我的问题没有影响.

那么也许我的项目有一些可能会对其产生影响的具体配置?无论如何,我创建了一个新项目,使用mvn archetype:generate(使用基本的org.apache.maven.archetypes:maven-archetype-quickstart).

我只修改了两件事pom.xml:使用JUnit 4.10(但它没有改变任何东西,我尝试过其他版本),并定义了surefire的版本:

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>foo</groupId>
    <artifactId>bar</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.11</version>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

我运行mvn test -Dtest=AppTest(由原型创建的默认JUnit测试):

-------------------------------------------------------  T E S T S
------------------------------------------------------- Running foo.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time
elapsed: 0.031 …
Run Code Online (Sandbox Code Playgroud)

maven maven-surefire-plugin

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

什么是PL/SQL开发的完美工具箱?

几个月以来,我在两个项目中使用大量的PL/SQL代码.

但是,我没有找到任何真正有趣的工具来开发这种语言.

目前,我的配置包括以下工具:

  • Eclipse(应用程序的其余部分是用Java开发的),带有PL/SQL Editor插件
  • 由于我真的不喜欢并信任Eclipse的PL/SQL编辑器插件,我主要使用PsPad来编辑我的PL/SQL文件.
  • SQL Developer(我也有TOAD,但我真的不知道/喜欢这个工具).

那么,开发PL/SQL应用程序的"完美"工具箱是什么?

我还读到SQL Developer 2.1引入了PL/SQL单元测试功能.有没有人有关于此功能的反馈和这个版本的SQL Developer(我仍然使用1.5)?

oracle plsql

7
推荐指数
2
解决办法
8277
查看次数

如何获取settings.xml中定义的服务器的值以在我的pom.xml中使用它们?

我知道我可以使用属性检索一些settings.xml参数,例如${settings.localRepository},获取本地存储库的位置.

现在假设我的settings.xml包含以下服务器定义:

<servers>
    <server>
        <id>server-dev</id>
        <username>devuser</username>
        <password>devpass</password>
    </server>
    <server>
        <id>server-hom</id>
        <username>homuser</username>
        <password>hompass</password>
    </server>
</servers>
Run Code Online (Sandbox Code Playgroud)

有没有办法,给定id一个服务器来获取任何参数的值?例如,类似的东西${settings.servers.server.server-dev.username}会返回devuser.

我已经尝试过以下方法:

${settings.servers.server.server-dev.username}
${settings.servers.server-dev.username}
${settings.servers.server[server-dev].username}
${settings.servers[server-dev].username}
Run Code Online (Sandbox Code Playgroud)

但他们都没有工作......


关于此页面,这是不可能的.但是,由于这是一个没有正确记录的功能,我仍然希望以这种方式做到这一点......

maven-2 properties

7
推荐指数
2
解决办法
4301
查看次数

从JTextPane获取原始文本

在我的应用程序中,我使用a JTextPane来显示一些日志信息.由于我想高亮显示本文中的某些特定行(例如错误消息),因此我将其设置contentType为" text/html".这样,我可以格式化我的文本.

现在,我创建一个JButton,将其内容复制JTextPane到剪贴板中.这部分很简单,但我的问题是,当我打电话时myTextPane.getText(),我会得到HTML代码,例如:

<html>
  <head>

  </head>
  <body>
    blabla<br>
    <font color="#FFCC66"><b>foobar</b></font><br>
    blabla
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

而不是只获取原始内容:

blabla
foobar
blabla
Run Code Online (Sandbox Code Playgroud)

有没有办法只获取我JTextPane的纯文本内容?或者我是否需要自己将HTML转换为原始文本?

java swing jtextpane

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

时区,日历和SimpleDateFormat的奇怪问题

我们考虑以下代码:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy", Locale.US);
long start = sdf.parse("10:30:00 30/09/2009").getTime();
long end = sdf.parse("10:30:00 30/10/2009").getTime();

Calendar c = Calendar.getInstance(Locale.US);
c.setTimeInMillis(start);
System.out.println("Start = " + c.getTime());
c.setTimeInMillis(end);
System.out.println("  End = " + c.getTime());
Run Code Online (Sandbox Code Playgroud)

运行此代码段时,我有以下输出:

Start = Wed Sep 30 10:30:00 CEST 2009
  End = Fri Oct 30 10:30:00 CET 2009
Run Code Online (Sandbox Code Playgroud)

为什么我会得到不同的时区?

请注意,如果我在8月设置第一个日期而在9月设置第二个日期,则输出将在两种情况下显示相同的时区:

long start = sdf.parse("10:30:00 30/08/2009").getTime();
long end = sdf.parse("10:30:00 30/09/2009").getTime();
Run Code Online (Sandbox Code Playgroud)

将显示:

Start = Sun Aug 30 10:30:00 CEST 2009
  End = Wed Sep 30 10:30:00 CEST …
Run Code Online (Sandbox Code Playgroud)

java calendar date simpledateformat

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