Maven Archetypes是"模板",通过它您可以快速生成给定框架或项目类型的运行示例.我正在尝试编译当前在网上活动的所有Maven原型目录的列表.
关于原型的知识存储在目录中.
目录是xml文件.
Archetype插件捆绑了内部目录.默认情况下使用此选项.
Archetype插件可以使用本地文件系统和HTTP连接中的目录.
到目前为止,我已经收集了这个发布目录的存储库列表,但是很想知道是否有人知道更多:
mvn archetype:generate
-DarchetypeCatalog=local
-DarchetypeCatalog=remote
-DarchetypeCatalog=http://repo.fusesource.com/maven2
-DarchetypeCatalog=http://cocoon.apache.org
-DarchetypeCatalog=http://download.java.net/maven/2
-DarchetypeCatalog=http://myfaces.apache.org
-DarchetypeCatalog=http://tapestry.formos.com/maven-repository
-DarchetypeCatalog=http://scala-tools.org
-DarchetypeCatalog=http://www.terracotta.org/download/reflector/maven2/
Run Code Online (Sandbox Code Playgroud)
链接到相同的:1)FuseSource 2) Cocoon 3)Java.net 4)MyFaces 5)Tapestry 6)Scala目录 7)Terracotta目录
您会注意到,如果存储库实际发布了原型目录(以上所有内容),您将获得所有选项的UI提示archetype-catalog.xml.例如:
mvn archetype:generate -DarchetypeCatalog=http://scala-tools.org
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: http://scala-tools.org -> scala-archetype-simple (A simple scala project)
2: http://scala-tools.org -> lift-archetype-blank (A blank/empty liftweb project)
3: http://scala-tools.org -> lift-archetype-basic (A basic liftweb project (with DB, css, ...))
Choose a …Run Code Online (Sandbox Code Playgroud) 我使用jhipster生成器来创建一个项目.我已经按照jhipster文档中提供的信息手动生成了一些实体:
如果您更喜欢(或需要)手动进行数据库更新,这里是开发工作流程:修改您的JPA实体(添加字段,关系等)在src/main/resources /中创建一个新的"更改日志" config/liquibase/changelog目录.该目录中的文件以其创建日期为前缀(以yyyyMMddHHmmss格式),然后有一个标题描述它们的作用.例如,20141006152300_added_price_to_product.xml是一个好名字.在src/main/resources/config/liquibase/master.xml文件中添加此"更改日志"文件,以便在下次运行应用程序时应用它如果您想了解有关使用Liquibase的更多信息,请访问http:/ /www.liquibase.org.
这里的文档只是提到,如何添加!!! 如果我想删除字段或实体之间的关系(jpa实体)该怎么办?
谢谢
我正在尝试发布一个使用git作为SCM的多模块maven项目,我遇到的第一个问题是maven发布插件构建release.properties scm.url的方式.我的父POM看起来像这样:
<packaging>pom</packaging>
<groupId>org.project</groupId>
<artifactId>project-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:git://github.com/username/project.git</connection>
<developerConnection>scm:git:git@github.com:username/project.git</developerConnection>
<url>http://github.com/username/project</url>
</scm>
<modules>
<module>api</module>
<module>spi</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
模块POM很简单:
<parent>
<groupId>org.project</groupId>
<artifactId>project-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>api</artifactId>
<version>0.2.2</version>
Run Code Online (Sandbox Code Playgroud)
我的目标是能够发布单个模块,因为它们各自具有不同的版本,并且我不希望每次发布时都将所有版本一起增加.
当我切换到api目录并执行以下操作时,mvn release:clean release:prepare我遇到了以下输出:
[INFO] Executing: cmd.exe /X /C "git push git@github.com:username/project.git/api master:master"
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to commit files
Provider message:
The git-push command failed.
Command output:
ERROR: Repository not found.
Run Code Online (Sandbox Code Playgroud)
看起来maven发布插件通过将模块名称附加到其上来创建scm.url developerConnection,这最终不是github上的有效存储库.我不确定设置它的正确方法是什么.可能是Maven + git +发布单个子模块根本不起作用的情况?任何输入都表示赞赏.
4,我尝试在apache Web服务器中配置负载均衡器但是没有成功.
在我的httpd.conf中
LoadModule proxy_module modules/mod_proxy.so
<VirtualHost mysuperwebapp.com:80>
ServerName mysuperwebapp.com
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from .mysuperwebapp.com
</Location>
<Proxy balancer://mycluster>
BalancerMember http://localhost:9999
BalancerMember http://localhost:9998 status=+H
</Proxy>
<Proxy *>
Order Allow,Deny
Allow From All
</Proxy>
ProxyPreserveHost On
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
ProxyPassReverse / http://localhost:9999/
ProxyPassReverse / http://localhost:9998/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我启动apache服务时,就说了
AH00526: Syntax error on line 184 of /Users/aptos/Documents/workspace/Webserver/conf/httpd.conf:
BalancerMember Can't find 'byrequests' lb method
Run Code Online (Sandbox Code Playgroud)
有人能告诉我我做错了吗?非常感谢你.
考虑到数据类型的各种怪癖和本地化,Web服务与应用程序之间传递货币价值的最佳方式是什么?某处有标准吗?
我的第一个想法是简单地使用数字类型.例如
"amount": 1234.56
Run Code Online (Sandbox Code Playgroud)
在使用浮点数据类型进行货币计算时,我已经看到很多关于缺乏精度和舍入误差的问题的论点 - 但是,我们只是传递值而不是计算,所以这无关紧要.
EventBrite的JSON货币规范指定如下:
{
"currency": "USD",
"value": 432,
"display": "$4.32"
}
Run Code Online (Sandbox Code Playgroud)
Bravo用于避免浮点值,但现在我们遇到另一个问题:我们可以容纳的最大数字是多少?
一条评论(我不知道它是否属实,但似乎是合理的)声称,由于数字实现在JSON中有所不同,因此您可以期待的最好的是32位有符号整数.32位有符号整数可以容纳的最大值是2147483647.如果我们表示次要单位中的值,那么是21,474,836.47美元.2100万美元似乎是一个巨大的数字,但是某些应用程序可能需要使用大于此值的值,这并不是不可思议的.对于1000个未成年单位成为主要单位的货币,或者货币价值低于美元的货币,问题会变得更严重.例如,突尼斯第纳尔分为1,000毫米.2147483647 milim,或2147483.647 TND是$ 1,124,492.04.在某些情况下,更有可能超过100万美元的价值.另一个例子:越南盾的子单位因通货膨胀而变得无用,所以让我们只使用主要单位.2147483647越南盾是98,526.55美元.我相信很多用例(银行存款,房地产价值等)远高于此.(EventBrite可能不必担心票价会那么高!)
如果我们通过将值作为字符串传递来避免该问题,那么字符串应该如何格式化?不同的国家/地区具有截然不同的格式 - 不同的货币符号,无论符号出现在金额之前还是之后,无论是否在符号和金额之间有空格,如果使用逗号或句点来分隔小数,如果逗号用作千位分隔符,括号或减号来表示负值,可能还有更多我不知道的值.
如果应用知道它正在使用的语言环境/货币,请传达类似的值
"amount": "1234.56"
Run Code Online (Sandbox Code Playgroud)
来回,并相信应用程序正确格式化金额?(另外:是否应避免使用小数值,以及以最小货币单位指定的值?或者主要和次要单位是否应列在不同的属性中?)
或者服务器应该提供原始值和格式化值?
"amount": "1234.56"
"displayAmount": "$1,234.56"
Run Code Online (Sandbox Code Playgroud)
或者服务器应该提供原始值和货币代码,并让应用程序格式化它?"amount":"1234.56""currencyCode":"USD"我假设使用的方法应该在两个方向上使用,与服务器之间进行传输.
我一直无法找到标准 - 您是否有答案,或者可以指向我定义此资源的资源?这似乎是一个普遍的问题.
有谁知道如何让像.gitignore这样的资源成为最终项目的一部分?
PS.我确定它不存在.
我有一个应用程序的EAR,我需要使用我自己的代码扩展此应用程序,该代码打包为WAR.是否有maven插件可以帮助我将WAR放入EAR?
手动过程是将WAR放入EAR并将模块添加到application.xml.我想自动化.
编辑:小澄清 - WAR项目使用maven但是对于EAR我只有二进制文件了.
我有一个使用Spring Framework和Git的Java项目,我想显示一个内部版本号.我找到了Build Number Maven插件.使用Git,内部版本号是一个Git哈希.我不喜欢这个,我认为约会更有表现力.
我发现这篇优秀的博客文章解释了如何使用不同的SVN和Git配置文件编号插件.由于我只使用Git,而不是创建新的配置文件,我只是在我的构建标记中复制了插件部分.
当我运行"mvn package"时,它告诉我:
[INFO] --- buildnumber-maven-plugin:1.0:create (default) @ sherd ---
[INFO] Storing buildNumber: 2011-08-04_21-48_stivlo at timestamp: 1312487296631
Run Code Online (Sandbox Code Playgroud)
哪个看起来不错,但我想知道,它存放在哪里?"git status"没有检测到任何新文件,它似乎不在目标/中(目标/在我的.gitignore中).
也许我要更改配置以将内部版本号存储在文件中?如何使用内部版本号值?
感谢Michael-O的提示,我在Maven入门指南中阅读了有关如何过滤资源文件的章节.我在src/main/resources/properties/application.properties中创建了一个文件application.properties,其中包含以下内容:
# application properties
application.name=${pom.name}
application.version=${pom.version}
application.build=${buildNumber}
Run Code Online (Sandbox Code Playgroud)
我在构建部分中添加了以下XML代码段:
<resources>
<resource>
<directory>src/main/resources/properties</directory>
<filtering>true</filtering>
</resource>
</resources>
Run Code Online (Sandbox Code Playgroud)
现在,当我从命令行"mvn package"调用时,此属性文件将保存在target/classes/properties/application.properties中,例如具有以下内容:
# application properties
application.name=Sherd Control Panel
application.version=1.0.1-SNAPSHOT
application.build=2011-08-05_05-55_stivlo
Run Code Online (Sandbox Code Playgroud)
从命令行一切正常,但是,叹息,m2eclipse给出了Build错误:
05/08/11 6.05.03 CEST: Build errors for obliquid-cp;
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal
org.codehaus.mojo:buildnumber-maven-plugin:1.0:create (default) on project
sherd: Cannot get the branch information from …Run Code Online (Sandbox Code Playgroud) 我们正在使用Jenkins,只是从没有身份验证的基于文件的git repo切换到使用GitBlit通过http进行适当的身份验证.
问题是 - maven如何在批处理模式下验证自己?
使用-Dusername和更新每个作业-Dpassword(并因此将密码存储在作业中)似乎不太可行.我已经读过settings.xml应该通过将git服务器指定为id来使用git,但是无论我做什么都没有效果(即发布插件提示输入凭据).
<properties>
<project.scm.id>git</project.scm.id>
</properties>
<scm>
<connection>scm:git:http://myserver:8081/r/gitauthtest.git</connection>
<developerConnection>scm:git:http://myserver:8081/r/gitauthtest.git</developerConnection>
</scm>
Run Code Online (Sandbox Code Playgroud)
<settings>
<servers>
<server>
<id>git</id>
<username>myUser</username>
<password>myPassword</password>
</server>
</servers>
</settings>
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个工作?我无法相信一项简单且极为常见的任务,因为它没有简单的标准解决方案.
maven ×4
java ×3
git ×2
maven-2 ×2
maven-plugin ×2
apache ×1
api-design ×1
build ×1
currency ×1
definition ×1
github ×1
hibernate ×1
java-ee ×1
javascript ×1
jhipster ×1
jpa ×1
json ×1
maven-3 ×1
php ×1