我正在使用Maven2来构建一个WAR项目.某些属性文件取决于发布的目标环境.
除了WAR之外,我想传递一个名为的文件datasource.xml
.此文件已存在于我的项目目录中,但包含将在构建期间过滤的属性(即某些${foo.bar}
).
换句话说,运行命令mvn clean install之后,我想在我的target/
目录中看到两个文件,my-webapp.war
和datasource.xml
.
请注意,工件中datasource.xml
不得包含my-webapp.war
!
我怎样才能做到这一点?
在我的应用程序中,我使用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转换为原始文本?
我使用hsqldb来运行需要数据库访问的单元测试.
目前,当我想为特定测试创建表时,我有以下代码:
private void createTable() {
PreparedStatement ps;
try {
ps = getConnection().prepareStatement("CREATE TABLE T_DATE (ID NUMERIC PRIMARY KEY, DATEID TIMESTAMP)");
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
该getConnection()
方法检索在Spring
上下文中定义的DataSource :
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:hsqldb:mem:memoryDB"/>
<property name="username" value="SA"/>
<property name="password" value=""/>
</bean>
Run Code Online (Sandbox Code Playgroud)
现在,我想从SQL脚本创建我的表(当然,这个脚本将包含多个表创建):
CREATE TABLE T_DATE_FOO (ID NUMERIC PRIMARY KEY, DATEID TIMESTAMP);
CREATE TABLE T_DATE_BAR (ID NUMERIC PRIMARY KEY, DATEID TIMESTAMP);
...
Run Code Online (Sandbox Code Playgroud)
我在HSQLDB文档中看到我可以让他在启动时运行脚本.但是,它不符合我的要求,因为我想在运行时运行脚本.
当然,我自己可以读取文件,对于每个SQL语句,我都运行一个ps.executeUpdate()
命令,但我不想使用这种解决方案(除非没有其他解决方案). …
问题描述
考虑maven正在哈德森上使用的情况.
现在有人拿出结帐项目,修改了一些文件,但意外地使用了相同的工件ID和版本号(非快照).
然后他/她在hudson上构建这个项目并做了maven安装.修改后的工件现在是hudson .m2.任何其他依赖它的项目都将使用修改后的工件进行构建.如果编译没有失败,没有人发现这一点.即使正确的工件驻留在中央存储库中,也永远不会使用它,因为当hudson开始构建时,从.m2中拾取已修改的工件.
所以我正在寻找一种方法来防止这种意外的人为错误.
我已经检查过没有办法强制从中央存储库更新非快照版本,因为它们是不可变的.
清除中央存储库或为hudson上的每个作业使用单独的存储库将分别导致构建时间和磁盘空间的增加.
任何帮助,将不胜感激.
作为一个爱好我用JavaScript写了一个游戏并且很想将它发布到Facebook,你能用纯HTML和JavaScript编写一个Facebook应用程序吗?
在我的web应用程序中,我正在联系Web服务(使用JAX-WS),但是我收到以下错误:
java.lang.ExceptionInInitializerError
at com.sun.xml.ws.message.AttachmentUnmarshallerImpl.<clinit>(AttachmentUnmarshallerImpl.java:55)
at com.sun.xml.ws.client.sei.ResponseBuilder$DocLit.readResponse(ResponseBuilder.java:500)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:242)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:210)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:103)
...
Caused by: java.lang.IllegalArgumentException: com.sun.xml.internal.messaging.saaj.soap.LocalStrings != com.sun.xml.messaging.saaj.soap.LocalStrings
at java.util.logging.Logger.getLogger(Logger.java:314)
at com.sun.xml.messaging.saaj.soap.AttachmentPartImpl.<clinit>(AttachmentPartImpl.java:71)
... 189 more
Run Code Online (Sandbox Code Playgroud)
当我在Eclipse中运行我的应用程序时,这发生在我的机器上...
这个错误的根源是什么?
我怀疑这个Oracle Java错误,但我在Tomcat 5.5和Java 1.6.0_18中运行我的Web应用程序,如下所示System.properties
:
java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = C:\Program Files\Java\jdk1.6.0_18\jre\bin
java.vm.version = 16.0-b13
java.runtime.version = 1.6.0_18-b07
java.version = 1.6.0_18
Run Code Online (Sandbox Code Playgroud) 我的引擎正在执行1,000,000次X
交易模拟.在每次模拟期间,对于每笔交易,可以验证特定条件.在这种情况下,我将值(即a double
)存储到数组中.每笔交易都有自己的价值清单(即这些价值从一笔交易到另一笔交易都是独立的).
在所有模拟结束时,对于每笔交易,我在他身上运行一个算法List<Double>
来获得一些输出.不幸的是,这个算法需要这些值的完整列表,因此,我无法修改我的算法来"即时"计算输出,即在模拟期间.
在"正常"条件下(即X
,低,并且验证条件的时间少于10%),计算正确结束,即使可以增强.
当我有很多交易(例如X = 30
)并且我的几乎所有模拟都验证了我的特定条件(比如90%的模拟)时,我的问题就出现了.所以只是存储值,我需要900,000 * 30 * 64bits
内存(大约216Mb).我未来的要求之一是能够运行5,000,000次模拟......
所以我无法继续目前存储值的方式.目前,我使用了一个"简单"结构Map<String, List<Double>>
,其中键是元素的ID,以及List<Double>
值列表.
所以我的问题是如何增强我的应用程序的这个特定部分,以减少模拟过程中的内存使用量?
另外一个重要的注意事项是,对于最终的计算,我必须订购我List<Double>
(或我将要使用的任何结构).因此,如果前一个问题的解决方案也提供了一个订购新插入元素的结构(例如a ),那将非常棒!SortedMap
我使用的是Java 1.6.
编辑1
我的引擎确实正在执行一些财务计算,在我的情况下,所有交易都是相关的.这意味着我无法在第一笔交易中运行计算,获得输出,清理List<Double>
,然后转移到第二笔交易,依此类推.
当然,作为临时解决方案,我们将增加分配给引擎的内存,但这不是我期望的解决方案;)
编辑2
关于算法本身.我不能在这里给出确切的算法,但这里有一些提示:
我们必须在分类上工作List<Double>
.然后我将计算一个索引(根据给定的参数和List
自身的大小计算).然后,我最终返回index-th
此List 的值.
public static double algo(double input, List<Double> sortedList) {
if (someSpecificCases) {
return 0;
}
// Calculate the index value, using input and also size of …
Run Code Online (Sandbox Code Playgroud) 我的Eclipse WTP在Tomcat部署过程中有一个奇怪的行为.我使用Eclipse 3.7(Indigo),WTP 3.3,没有 m2eclipse插件,Java 1.6,Tomcat 5.5.
我的应用程序是一个Web应用程序,其他一些项目作为依赖项,以及一些第三方依赖项.我的项目由Maven管理,当我们使用这个工具构建应用程序时,一切正常.
要使用Eclipse处理我的项目,我运行mvn eclipse:clean eclipse:eclipse
然后,我在IDE中导入我的项目.
当我想在Tomcat 5.5服务器上部署此Web应用程序时(这个服务器由Eclipse管理),我的问题出现了.当我创建一个新的Tomcat服务器,并在其中部署my -project-portal应用程序时,它只添加了my-project-xxx依赖项,以及很少的第三方依赖项(大约有9个定义的).在我的一位同事桌面上(他正在使用Eclipse 3.5),根本没有部署第三方依赖,只有my-project-xxx JAR ......
但是,当我查看Web-app项目属性,在Java Build Path> Libraries或"Deployment Assembly"中时,依赖项列表是正确和完整的.
笔记
我使用较旧的Eclipse(3.3,使用WTP 3.1)进行了一些测试,但我没有遇到任何部署问题.但是,这个WTP仍在使用"Java EE Modules Dependencies",而不是最新的WTP版本.
到目前为止,我们使用了一个自定义的Maven插件,然后将mvn eclipse:eclipse
所有依赖项(包括传递的)复制到其中my-webapp-project/WebContent/WEB-INF/lib
.这样做,Eclipse自动部署了这些依赖项的内容,因此,我们获得了Tomcat服务器中的所有依赖项.
问题
WEB-INF/lib
目录中的所有依赖项吗?以下是运行后Eclipse配置文件的摘录mvn eclipse:eclipse
:
的.classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/asm/asm/2.2.2/asm-2.2.2.jar" sourcepath="M2_REPO/asm/asm/2.2.2/asm-2.2.2-sources.jar"/>
<classpathentry kind="src" …
Run Code Online (Sandbox Code Playgroud) 我每天晚上都有詹金斯的工作.在此构建期间执行的任务是:编译,单元测试,集成测试(只有JUnit测试比执行的"实际单元测试"更长),以及声纳质量分析.
当测试失败时,该作业被视为成功,因此,不会发送任何电子邮件来通知此失败.
使用的Maven命令是mvn clean install sonar:sonar
.删除install
目标不会改变任何事情.
这有什么问题?
有没有办法在只有一个Jenkins作业的情况下获得预期的行为(即在测试失败时具有不稳定的构建),或者我应该创建两个作业,一个用于整个"Java部分"(编译,单元测试和集成测试) ,一个用于声纳分析?
我们使用的是Maven 2.0.9,Java 1.6,Sonar 2.8,Jenkins 1.413.
我正在使用Octopress进行博客,我想发布以下代码片段(它是Mustache JS语法):
```
<ul id="beers-list">
{{#beers}}
<li>{{name}} - {{color}} - {{alcohol}}%</li>
{{/beers}}
</ul>
```
Run Code Online (Sandbox Code Playgroud)
不幸的是,渲染时,一切都{{...}}
消失了,我在网站上看到以下内容:
<ul id="beers-list">
<li> - - %</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我没能逃脱{{
(即使有\{{
,{\{
或类似的东西.有没有办法逃避这些字符?
谢谢.
我不确定SO是否是这个问题的更好网站
java ×4
maven ×3
eclipse ×1
eclipse-wtp ×1
facebook ×1
hsqldb ×1
hudson ×1
javascript ×1
jax-ws ×1
jenkins ×1
jtextpane ×1
markdown ×1
maven-2 ×1
octopress ×1
performance ×1
sonarqube ×1
sql ×1
swing ×1
tomcat ×1
unit-testing ×1
web-services ×1