就像在推荐之前的SO-回答我运行的VMware映像secureci含行家,承上启下,哈德森,SVN预配置的开发基础.
现在我想在我的Windows XP机器上配置maven,将其工件部署到nexus.但是当我像这样配置我的pom.xml时(取自部署工件到Nexus):
<distributionManagement>
<!-- use the following if you're not using a snapshot version. -->
<repository>
<id>nexus</id>
<name>RepositoryProxy</name>
<url>scp://192.168.0.197/nexus/content/repositories/releases</url>
</repository>
<!-- use the following if you ARE using a snapshot version. -->
<snapshotRepository>
<id>nexus</id>
<name>RepositoryProxy</name>
<url>scp://192.168.0.197/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)
... mvn deploy打印错误消息:
Error deploying artifact: Exit code: 1 -
mkdir: cannot create directory `/nexus': Permission denied
Run Code Online (Sandbox Code Playgroud)
在settings.xml我配置的用户名和密码如下:
<servers>
<server>
<id>nexus</id>
<username>tangens</username>
<password>********</password>
</server>
</servers>
Run Code Online (Sandbox Code Playgroud)
问题:我必须使用哪种配置来部署到nexus?
我已经尝试过https而不是scp,但是这个maven遇到了缺少证书的问题. …
与'普通'svn目录结构相反,我使用以下结构:
trunk/
project1/
project2/
project3/
...
branches/
project1-branch/
project1/
project2/
...
project2-branch/
project1/
project2/
...
tags/
project1/
V1
V2
...
如您所见,我没有为每个项目单独的三元组(主干/分支/标签).
对于开发,我会检查包含我需要的所有项目的主干(有时是稀疏结账)(项目之间存在依赖关系,而某些项目只是库).
我在这里看到的好处是:
更新和签入很简单,因为我有一个所有项目的公共根目录(主干).一个简单svn update或svn commit全部.
创建标签或分支很简单,因为它只是我必须拥有的主干svn copy.(分支和标签实际上包含的项目比需要的多,但是它svn copy很便宜,如果需要,我仍然可以在分支或标签上进行稀疏检查.)
将资源从一个项目移动到另一个项目很容易,因为它们都存在于同一个存储库中.
当我正在完全检查主干时,全局重构(例如更改常用类的包)很容易,因为我可以确定我不会错过任何项目.
合并很容易,因为即使从一个项目到另一个项目的重构移动,我总是可以立即合并整个分支.
我打算迁移到maven并将所有项目从trunk转移到maven项目.我想从maven依赖管理和可用的插件中受益(现在我正在使用巨大的自定义ant文件).
现在我的问题是:
我是否必须更改svn目录结构以为每个项目提供自己的三元组(主干/分支/标签)?我猜答案是'是'.
如果我改变结构,我会松开上面提到的哪些好处(我的意思是用maven做什么会更复杂)?
用maven做同样的方法是什么?
所以我只是尝试String[]从main方法中排除args
它汇编好了!
但JVM正在显示异常
为什么String[]每次都要包含args 时它会编译?
这里发生了什么 ?为什么不显示编译错误?
打字这让我觉得可能是编译器没有把它看成是main方法..是这样的吗?
如果是这样的话......为什么不呢?我的意思是不应该只有一个主要的方法必须有String[]args作为参数?
我在linux服务器(Debian)上创建了一个svn repositoy,并在windows机器上使用客户端检查我的java源代码.
现在我在不同的Linux服务器(Ubuntu)上设置了一个Hudson服务器,以定期对我的代码运行测试.但是测试因编译器错误而失败:
Error: unmappable character for encoding ASCII
Run Code Online (Sandbox Code Playgroud)
在我的Windows机器上,我使用了默认编码Cp1252.在我的svn服务器上,我可以对我的源进行本地检查,看起来很好.在我的Hudson服务器上,结帐包含非法字符.
我必须调整哪些参数,以便所有三个系统都使用工作编码?
编辑2009-10-15:
我将我的Ubuntu系统的默认编码更改为latin1.现在我可以用编辑器打开签出文件,它们看起来很好(感谢superuser.com上的@ John-T ).
但哈德森仍然抱怨unmappable character for encoding ASCII,我发现这是由maven引起的.我发现了一个explantion,但建议的解决方案没有奏效.现在maven告诉我它latin1在复制一些资源时会使用,但是编译器(不使用这个设置?)仍然会抱怨同样的错误信息.
我正在查看几个文件的内容,如:
(2E)-3-({5,6-dihydroxy-3-methyl-2-oxo-4-[(1E)-prop-1-en-1-yl]-2,3-dihydro-1-benzofuran
Run Code Online (Sandbox Code Playgroud)
用grep,所以我尝试做:
grep -n "(2E)-3-({5,6-dihydroxy-3-methyl-2-oxo-4-[(1E)-prop-1-en-1-yl]-2,3-dihydro-1-benzofuran" *.data
Run Code Online (Sandbox Code Playgroud)
但我得到错误,可能是由于字符串很复杂.
是否有额外的grep选项或其他方式让我在文件中找到此字符串?
谢谢
好吧,我被卡住了,即使在关注了Google的文档并在Stackoverflow上阅读建议之后我也不知道出了什么问题.为什么我无法在网页中控制Youtube嵌入?
如果我创建一个HTML文件,其中<body>是:
<object id="o1" width="480" height="295">
<param name="movie"
value="http://www.youtube.com/v/qCTLCNmnlKU&hl=en_US&fs=1&enablejsapi=1&">
</param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed id="e1"
src="http://www.youtube.com/v/qCTLCNmnlKU&hl=en_US&fs=1&enablejsapi=1&"
type="application/x-shockwave-flash"
allowscriptaccess="always" allowfullscreen="true" width="480" height="295">
</embed>
</object>
Run Code Online (Sandbox Code Playgroud)
即使我试图这样做:
// I get an object. Yay.
document.getElementById('e1');
// This generates "...playVideo is not a function"
document.getElementById('e1').playVideo();
Run Code Online (Sandbox Code Playgroud)
救命!我究竟做错了什么?谢谢.
对于我的测试,我正在使用一个基类MyTestBase定义一个setup()做一些基本准备的方法:
public class MyTestBase {
@Configuration( beforeTestMethod=true )
protected void setup() {
// do base preparations
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有一些更具体的测试类,必须做好自己的准备.有多种方法可以实现这一点.
我可以用@Override:
public class MySpecialTestBase extends MyTestBase {
@Override
protected void setup() {
super.setup();
// do additional preparations
}
}
Run Code Online (Sandbox Code Playgroud)
...或者我可以使用单独的设置方法:
public class MySpecialTestBase extends MyTestBase {
@Configuration( beforeTestMethod=true )
protected void setupSpecial() {
// do additional preparations
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一种优先实现方法?
如何作为bean访问一个简单的java对象?
例如:
class Simple {
private String foo;
String getFoo() {
return foo;
}
private void setFoo( String foo ) {
this.foo = foo;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想像这样使用这个对象:
Simple simple = new Simple();
simple.setFoo( "hello" );
checkSettings( simple );
Run Code Online (Sandbox Code Playgroud)
所以我正在寻找该方法的实现checkSettings( Object obj ):
public boolean checkSettings( Object obj ) {
// pseudocode here
Bean bean = new Bean( obj );
if( "hello".equals( bean.getAttribute( "foo" ) ) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
java语言包含一个叫做java.beans听起来可以帮助我的软件包.但我找不到一个好的起点.
任何提示?
我试图使用此方法获取主机名/计算机名称.不幸的是我只能获得localhost但不能获得其他计算机.
private String getHostName(String _strIP) {
try {
InetAddress inetAddress = InetAddress.getByName(_strIP);
System.out.println("getHostAddress : " + inetAddress.getHostAddress());
System.out.println("getHostName : " + inetAddress.getHostName());
System.out.println("getCanonicalHostName : " + inetAddress.getCanonicalHostName());
return inetAddress.getHostName();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return strDefaultHostName;
}
Run Code Online (Sandbox Code Playgroud)
getHostAddress : 192.168.2.139
getHostName : 192.168.2.139
getCanonicalHostName : 192.168.2.139
Run Code Online (Sandbox Code Playgroud)
getHostAddress : 127.0.0.1
getHostName : localhost
getCanonicalHostName : localhost
Run Code Online (Sandbox Code Playgroud)
谢谢
java ×6
maven-2 ×3
svn ×2
bash ×1
deployment ×1
encoding ×1
flash ×1
grep ×1
javabeans ×1
javascript ×1
linux ×1
nexus ×1
refactoring ×1
reflection ×1
testng ×1
windows ×1
youtube-api ×1