<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog @ SIB Visions &#187; Maven</title>
	<atom:link href="http://blog.sibvisions.com/tag/maven/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.sibvisions.com</link>
	<description>Blog @ SIB Visions</description>
	<lastBuildDate>Mon, 13 Apr 2026 09:47:01 +0000</lastBuildDate>
		<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mavenized everything</title>
		<link>https://blog.sibvisions.com/2016/09/02/mavenized-everything/</link>
		<comments>https://blog.sibvisions.com/2016/09/02/mavenized-everything/#comments</comments>
		<pubDate>Fri, 02 Sep 2016 10:02:14 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[JVx]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=5803</guid>
		<description><![CDATA[We're happy to announce that all our projects are available as Maven artifacts.
Not all of our projects are public and aren't available in public Maven repositories, but we offer our own nexus for all this projects.
Which projects aren't public?

Vaadin Charts UI

Vaadin responsive application frame

Application client

Application server

Application Services

JavaFX mobile UI

Oracle Forms extension


We provide snapshot and release [...]]]></description>
			<content:encoded><![CDATA[<p>We're happy to announce that <strong>all our projects</strong> are available as <strong>Maven artifacts</strong>.<br />
Not all of our projects are public and aren't available in public Maven repositories, but we offer our own nexus for all this projects.</p>
<p>Which projects aren't public?</p>
<ul>
<li>Vaadin Charts UI
</li>
<li>Vaadin responsive application frame
</li>
<li>Application client
</li>
<li>Application server
</li>
<li>Application Services
</li>
<li>JavaFX mobile UI
</li>
<li>Oracle Forms extension
</li>
</ul>
<p>We provide snapshot and release artifacts. All other - public - projects are available via maven central as <a href="http://search.maven.org/#search%7Cga%7C1%7Csibvisions">release</a> or <a href="https://oss.sonatype.org/content/repositories/snapshots/com/sibvisions/">snapshot</a> artifacts.</p>
<ul>
<li>JVx
</li>
<li>JVx EE
</li>
<li>Vaadin UI
</li>
<li>JavaFX UI
</li>
<li>Headless UI
</li>
<li>Online help
</li>
<li>JVx mobile
</li>
</ul>
<p>Our private Maven repository is available on a subscription basis. This doesn't mean that our private projects aren't open source projects, but we don't offer snapshot or release artifacts for them!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2016/09/02/mavenized-everything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven omg</title>
		<link>https://blog.sibvisions.com/2014/07/02/maven-omg/</link>
		<comments>https://blog.sibvisions.com/2014/07/02/maven-omg/#comments</comments>
		<pubDate>Wed, 02 Jul 2014 15:24:56 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=3050</guid>
		<description><![CDATA[It was a very simple task. The library Twitter4j (4.0.1) was compiled for Java 6 and I need a 1.5 compatible version. So, I thought it shouldn't be a problem to compile the project with 1.5 compatibility 
Twitter4j is available via git and after cloning and switching to 4.0.1 everything was available. I tried to [...]]]></description>
			<content:encoded><![CDATA[<p>It was a very simple task. The library Twitter4j (4.0.1) was compiled for Java 6 and I need a 1.5 compatible version. So, I thought it shouldn't be a problem to compile the project with 1.5 compatibility <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Twitter4j is available via git and after cloning and switching to 4.0.1 everything was available. I tried to import the maven project with Eclipse (Kepler) and got many problems because of missing libraries. WTF?</p>
<p>Shouldn't maven solve all dependency problems? I didn't try to fix problems with Eclipse because it could be a maven plugin problem. So I tried maven itself with jdk 1.5 and some minutes later I got other exceptions because Twitter4j source was written with Java 6 syntax (@Override with interface methods).<br />
So I had to use Java 6 with 1.5 target option... After modifying pom.xml of twitter4j-core, the build had another problem: All test cases failed <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . So I had to use the command-line property <strong>-Dmaven.test.skip=true</strong> to ignore unit tests.</p>
<p>Finally I got my 1.5 compatible Twitter4j library.</p>
<p>But it was an awful task because maven bundled with Eclipse didn't work as expected. It's horrible if tools that should save time, waste time. I still don't like maven. IMHO it's still to complex compared to other build tools.<br />
A build tool shouldn't be as complex as developing software.</p>
<p>Nowadays everything has to work with our IDEs, but what happens if it doesn't?</p>
<p>I'm a researcher and love solving problems but is it that complex to keep things simple?<br />
Software has to be simple to help us and we - developers - have to write simple software/frameworks/libraries.</p>
<p>Instead of creating simple software, many developers try to write millions LoC. Don't do that because no one can handle such code-bases in the future.</p>
<p>Just sayin'</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2014/07/02/maven-omg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VaadinUI 1.0 with JVx Archetype</title>
		<link>https://blog.sibvisions.com/2013/10/24/vaadinui-1-0-with-jvx-archetype/</link>
		<comments>https://blog.sibvisions.com/2013/10/24/vaadinui-1-0-with-jvx-archetype/#comments</comments>
		<pubDate>Thu, 24 Oct 2013 13:19:58 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JVx]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Vaadin]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=2596</guid>
		<description><![CDATA[If you want to use VaadinUI 1.0 with your maven project it's not an easy task because VaadinUI is not available via maven repositories - right now. But I want to show you an easy way to use VaadinUI 1.0 together with JVx Archetype 1.2.0.
Simply create a new maven project (my IDE is Eclipse) based [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to use VaadinUI 1.0 with your maven project it's not an easy task because VaadinUI is not available via maven repositories - right now. But I want to show you an easy way to use VaadinUI 1.0 together with JVx Archetype 1.2.0.</p>
<p>Simply create a new maven project (my IDE is Eclipse) based on JVx Archetype 1.2.0. This archetype references JVx 1.2. Older versions are not compatible with Vaadin UI 1.0 - because of new features in JVx' launcher interface. In order to use Vaadin for JVx applications, add following dependencies to the pom.xml of your server project:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.vaadin<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>vaadin-server<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>${vaadin.version}<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.vaadin<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>vaadin-client-compiled<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>${vaadin.version}<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.vaadin<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>vaadin-client<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>${vaadin.version}<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;scope<span class="re2">&gt;</span></span></span>provided<span class="sc3"><span class="re1">&lt;/scope<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.vaadin<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>vaadin-themes<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>${vaadin.version}<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>javax.servlet<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>servlet-api<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>2.4<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;scope<span class="re2">&gt;</span></span></span>provided<span class="sc3"><span class="re1">&lt;/scope<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span></div>
</div>
<p>Set the global property in parent project pom.xml:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;properties<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;jvx.version<span class="re2">&gt;</span></span></span>1.2<span class="sc3"><span class="re1">&lt;/jvx.version<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;vaadin.version<span class="re2">&gt;</span></span></span>7.0.6<span class="sc3"><span class="re1">&lt;/vaadin.version<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/properties<span class="re2">&gt;</span></span></span></div>
</div>
<p>Because Vaadin runs on server-side, our client has to be deployed on server-side as well. Change pom.xml of your war project:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>${project.parent.groupId}<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>${project.parent.artifactId}-client<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>${project.parent.version}<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span></div>
</div>
<p>This is not a perfect solution because jvxclient.jar will be added. This lib is not necessary because jvxall.jar is already available - but also not a problem!</p>
<p>The last step is the integration of JVx' VaadinUI. There are many solutions to integrate external libraries but maven is not a friend of external libraries. Using system scrope is evil and such libraries won't be added to war files. Deploying external jars to a local maven repository works but why should we do that? I did decide to use sort of  a local maven repository placed in my project with following file structure in my server project:</p>
<table>
<tr>
<td>
<a href="http://blog.sibvisions.com/wp-content/uploads/2013/10/mvn_repo_project.png" rel="lightbox[2596]"><img src="http://blog.sibvisions.com/wp-content/uploads/2013/10/mvn_repo_project.png" alt="mvn_repo_project" title="mvn_repo_project" width="271" height="221" class="alignleft size-full wp-image-2603" /></a></td>
</tr>
</table>
<p>The integration in pom.xml of server project:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;repositories<span class="re2">&gt;</span></span></span><br />
&nbsp;... &nbsp; <br />
&nbsp;<span class="sc3"><span class="re1">&lt;repository<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;id<span class="re2">&gt;</span></span></span>in-project<span class="sc3"><span class="re1">&lt;/id<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;name<span class="re2">&gt;</span></span></span>External libs<span class="sc3"><span class="re1">&lt;/name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;url<span class="re2">&gt;</span></span></span>file://${project.basedir}/lib<span class="sc3"><span class="re1">&lt;/url<span class="re2">&gt;</span></span></span><br />
&nbsp;<span class="sc3"><span class="re1">&lt;/repository<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/repositories<span class="re2">&gt;</span></span></span></div>
</div>
<p>Finally we need additional dependencies (server project):</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.sibvisions<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>jvxvaadin-client<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>1.0<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.sibvisions<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>jvxvaadin-server<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>1.0<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.sibvisions<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>jvxvaadin-themes<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>1.0<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span></div>
</div>
<p>The last integration step is the modification of web.xml in our war project:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc-1">&lt;!-- Vaadin UI --&gt;</span><br />
&nbsp; <br />
&nbsp; <span class="sc3"><span class="re1">&lt;servlet<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;servlet-name<span class="re2">&gt;</span></span></span>VaadinServlet<span class="sc3"><span class="re1">&lt;/servlet-name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;servlet-class<span class="re2">&gt;</span></span></span>com.sibvisions.rad.ui.vaadin.server.VaadinServlet<span class="sc3"><span class="re1">&lt;/servlet-class<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;init-param<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;param-name<span class="re2">&gt;</span></span></span>UI<span class="sc3"><span class="re1">&lt;/param-name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;param-value<span class="re2">&gt;</span></span></span>com.sibvisions.rad.ui.vaadin.impl.VaadinUI<span class="sc3"><span class="re1">&lt;/param-value<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/init-param<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;init-param<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;param-name<span class="re2">&gt;</span></span></span>widgetset<span class="sc3"><span class="re1">&lt;/param-name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;param-value<span class="re2">&gt;</span></span></span>com.sibvisions.rad.ui.vaadin.ext.ui.Widgetset<span class="sc3"><span class="re1">&lt;/param-value<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/init-param<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;init-param<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;param-name<span class="re2">&gt;</span></span></span>main<span class="sc3"><span class="re1">&lt;/param-name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;param-value<span class="re2">&gt;</span></span></span>com.sibvisions.apps.myproject.MainApplication<span class="sc3"><span class="re1">&lt;/param-value<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/init-param<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/servlet<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; <span class="sc3"><span class="re1">&lt;servlet-mapping<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;servlet-name<span class="re2">&gt;</span></span></span>VaadinServlet<span class="sc3"><span class="re1">&lt;/servlet-name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;url-pattern<span class="re2">&gt;</span></span></span>/vaadinui/*<span class="sc3"><span class="re1">&lt;/url-pattern<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/servlet-mapping<span class="re2">&gt;</span></span></span></p>
<p>&nbsp; <span class="sc3"><span class="re1">&lt;servlet-mapping<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;servlet-name<span class="re2">&gt;</span></span></span>VaadinServlet<span class="sc3"><span class="re1">&lt;/servlet-name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;url-pattern<span class="re2">&gt;</span></span></span>/VAADIN/*<span class="sc3"><span class="re1">&lt;/url-pattern<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/servlet-mapping<span class="re2">&gt;</span></span></span></div>
</div>
<p>That's it.</p>
<p>Use the war project together with an application server in Eclipse and enter http://localhost/myproject/vaadinui/ in a web browser to start your application with VaadinUI - with debugging support. Create a war file, deploy it and it will work without problems.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2013/10/24/vaadinui-1-0-with-jvx-archetype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven deployment via Ant</title>
		<link>https://blog.sibvisions.com/2013/07/16/maven-deployment-via-ant/</link>
		<comments>https://blog.sibvisions.com/2013/07/16/maven-deployment-via-ant/#comments</comments>
		<pubDate>Tue, 16 Jul 2013 13:48:44 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[JVx]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=2361</guid>
		<description><![CDATA[We are no Maven lovers, because it helps to forget how things work. But we think the dependency management is useful. It's great for developers who need specific library versions without managing them manually.
The user aspect is one thing, but nobody tells you that it's not trivial to release libraries. One problem is the pre-deployment [...]]]></description>
			<content:encoded><![CDATA[<p>We are no Maven lovers, because it helps to forget how things work. But we think the dependency management is useful. It's great for developers who need specific library versions without managing them manually.</p>
<p>The user aspect is one thing, but nobody tells you that it's not trivial to release libraries. One problem is the pre-deployment process. Before you are able to deploy your jar files, you have to do a lot of things like GPG key generation, publishing GPG key, find the right repository, prepare your build, special pom cration and so on.</p>
<p>If you already have release builds with version numbers, javadoc and source archives, you'll save a lot of time. If you don't have complete and clean release builds - see you later.</p>
<p>Let's start with a good documentation about requirements:<br />
<a href="https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide">https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide</a></p>
<p>Of course, it assumes that you'll use Sonatype as your repository, but all others are not too different.</p>
<p>This posting is not a complete documentation. It simply shows the problems we had.</p>
<p><strong>Our simple pom files:</strong><br />
<a href="http://sourceforge.net/p/jvx/code/4829/tree/trunk/java/library/maven/jvxall/pom.xml">pom.xml (jvxall)</a><br />
<a href="http://sourceforge.net/p/jvx/code/4829/tree/trunk/java/library/maven/jvxclient/pom.xml">pom.xml (jvxclient)</a></p>
<p>The first is with dependencies and the second without, because our client doesn't have dependencies.</p>
<p>The real problems started with the integration in our ant script, because the documentation of Maven plugins were awful. It's easier to read the source code than to find out how plugins work. One example: Read following <a href="http://maven.apache.org/plugins/maven-gpg-plugin/sign-and-deploy-file-mojo.html">plugin documentation</a> and tell me the valid values for "types" and "classifier". There are no examples on the page! Google around and copy/paste a little bit - awful!</p>
<p><strong>Here's a working ant call</strong></p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;typedef</span> <span class="re0">resource</span>=<span class="st0">&quot;org/apache/maven/artifact/ant/antlib.xml&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">uri</span>=<span class="st0">&quot;antlib:org.apache.maven.artifact.ant&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">classpath</span>=<span class="st0">&quot;${build}/maven/maven-ant-tasks-2.1.3.jar&quot;</span> <span class="re2">/&gt;</span></span></p>
<p><span class="sc3"><span class="re1">&lt;condition</span> <span class="re0">property</span>=<span class="st0">&quot;gpgexecutable&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp;<span class="re0">value</span>=<span class="st0">&quot;C:\Program Files\GNU\GnuPG\pub\gpg.exe&quot;</span> <span class="re0">else</span>=<span class="st0">&quot;gpg&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;and<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;os</span> <span class="re0">family</span>=<span class="st0">&quot;Windows&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;/and<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/condition<span class="re2">&gt;</span></span></span></p>
<p><span class="sc3"><span class="re1">&lt;artifact:mvn<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;org.apache.maven.plugins:maven-gpg-plugin:1.4:sign-and-deploy-file&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-Durl=${mvn.url}&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-DrepositoryId=${mvn.id}&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-DpomFile=${maven.tmp}/jvxall/pom.xml&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-Dfile=${mvn.jvx.jar}&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-Dfiles=${mvn.jvx.sources.jar},${mvn.jvx.javadoc.jar}&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-Dclassifiers=sources,javadoc&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-Dtypes=jar,jar&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-Pgpg&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;arg</span> <span class="re0">value</span>=<span class="st0">&quot;-Dgpg.executable=${gpgexecutable}&quot;</span> <span class="re2">/&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;/artifact:mvn<span class="re2">&gt;</span></span></span></div>
</div>
<p>Above call submits e.g. jvx-1.1.jar, jvx-1.1-javadoc.jar and jvx-1.1-sources.jar to the repository.</p>
<p>Why one call instead of 3 separate calls, as described in the documentation? </p>
<p><strong>Short:</strong> It's better <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<strong>Long:</strong> It's better to submit all dependent files in one "maven session". Above call creates a new maven project and if you call this command per file, there's no logical connection between them. If you plan to deploy snapshot releases - forget it - it doesn't work with different calls because every upload gets a new buildnumber. But all files need the same buildnumber! Such deployments can't be used. If you read the Sonatype document, you saw that "deploy" task didn't deploy javadoc and sources! The "stage" task did. I'm not sure, but I think they had the same problem with separate uploads! Trust me, above call works with snapshots and final releases.</p>
<p><strong>Our naming conventions</strong></p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">&quot;mvn.jvx.jar&quot;</span> <span class="re0">value</span>=<span class="st0">&quot;${release}/maven/${release.name}-${versionnumber}${maven.version.postfix}.jar&quot;</span> <span class="re2">/&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">&quot;mvn.jvx.sources.jar&quot;</span> <span class="re0">value</span>=<span class="st0">&quot;${release}/maven/${release.name}-${versionnumber}${maven.version.postfix}-sources.jar&quot;</span> <span class="re2">/&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">&quot;mvn.jvx.javadoc.jar&quot;</span> <span class="re0">value</span>=<span class="st0">&quot;${release}/maven/${release.name}-${versionnumber}${maven.version.postfix}-javadoc.jar&quot;</span> <span class="re2">/&gt;</span></span></div>
</div>
<p>(${maven.version.postfix} is <strong>-SNAPSHOT</strong> for snapshot releases and empty for final releases)</p>
<p><strong>Repository Id, URL</strong></p>
<p>${mvn.id} = sonatype-nexus-staging<br />
${mvn.url} = https://oss.sonatype.org/service/local/staging/deploy/maven2</p>
<p><strong>Other problems?</strong></p>
<p>Proxy settings for Maven, Use an external GPG key, Autentication. </p>
<p>If you copy the following settings.xml to &lt;users.home&gt;/.m2 and modify it to fit your needs, it should solve all problems:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;UTF-8&quot;</span><span class="re2">?&gt;</span></span></p>
<p><span class="sc3"><span class="re1">&lt;settings<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;servers<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;server<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;id<span class="re2">&gt;</span></span></span>sonatype-nexus-snapshots<span class="sc3"><span class="re1">&lt;/id<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;username<span class="re2">&gt;</span></span></span>username<span class="sc3"><span class="re1">&lt;/username<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;password<span class="re2">&gt;</span></span></span>password<span class="sc3"><span class="re1">&lt;/password<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/server<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;server<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;id<span class="re2">&gt;</span></span></span>sonatype-nexus-staging<span class="sc3"><span class="re1">&lt;/id<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;username<span class="re2">&gt;</span></span></span>username<span class="sc3"><span class="re1">&lt;/username<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;password<span class="re2">&gt;</span></span></span>password<span class="sc3"><span class="re1">&lt;/password<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/server<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/servers<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;profiles<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;profile<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;id<span class="re2">&gt;</span></span></span>gpg<span class="sc3"><span class="re1">&lt;/id<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;properties<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;gpg.passphrase<span class="re2">&gt;</span></span></span>gpgkey<span class="sc3"><span class="re1">&lt;/gpg.passphrase<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/properties<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/profile<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/profiles<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;proxies<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;proxy<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;id<span class="re2">&gt;</span></span></span>firewall<span class="sc3"><span class="re1">&lt;/id<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;active<span class="re2">&gt;</span></span></span>true<span class="sc3"><span class="re1">&lt;/active<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;protocol<span class="re2">&gt;</span></span></span>http<span class="sc3"><span class="re1">&lt;/protocol<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;host<span class="re2">&gt;</span></span></span>10.0.0.1<span class="sc3"><span class="re1">&lt;/host<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;port<span class="re2">&gt;</span></span></span>3128<span class="sc3"><span class="re1">&lt;/port<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;username<span class="re2">&gt;</span></span><span class="re1">&lt;/username<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;password<span class="re2">&gt;</span></span><span class="re1">&lt;/password<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;nonProxyHosts<span class="re2">&gt;</span></span></span>localhost,127.0.0.1<span class="sc3"><span class="re1">&lt;/nonProxyHosts<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/proxy<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;proxy<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;id<span class="re2">&gt;</span></span></span>firewall-2<span class="sc3"><span class="re1">&lt;/id<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;active<span class="re2">&gt;</span></span></span>true<span class="sc3"><span class="re1">&lt;/active<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;protocol<span class="re2">&gt;</span></span></span>https<span class="sc3"><span class="re1">&lt;/protocol<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;host<span class="re2">&gt;</span></span></span>10.0.0.1<span class="sc3"><span class="re1">&lt;/host<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;port<span class="re2">&gt;</span></span></span>3128<span class="sc3"><span class="re1">&lt;/port<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;username<span class="re2">&gt;</span></span><span class="re1">&lt;/username<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;password<span class="re2">&gt;</span></span><span class="re1">&lt;/password<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;nonProxyHosts<span class="re2">&gt;</span></span></span>localhost,127.0.0.1<span class="sc3"><span class="re1">&lt;/nonProxyHosts<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/proxy<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/proxies<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/settings<span class="re2">&gt;</span></span></span></div>
</div>
<p>We configured the proxy via ant build.xml</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;target</span> <span class="re0">name</span>=<span class="st0">&quot;proxy.check&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;condition</span> <span class="re0">property</span>=<span class="st0">&quot;proxy.enabled&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;and<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;socket</span> <span class="re0">server</span>=<span class="st0">&quot;10.0.0.1&quot;</span> <span class="re0">port</span>=<span class="st0">&quot;3128&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/and<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/condition<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/target<span class="re2">&gt;</span></span></span></p>
<p><span class="sc3"><span class="re1">&lt;target</span> <span class="re0">name</span>=<span class="st0">&quot;proxy&quot;</span> <span class="re0">depends</span>=<span class="st0">&quot;proxy.check&quot;</span> <span class="re0">if</span>=<span class="st0">&quot;proxy.enabled&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">&quot;proxy.host&quot;</span> <span class="re0">value</span>=<span class="st0">&quot;10.0.0.1&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">&quot;proxy.port&quot;</span> <span class="re0">value</span>=<span class="st0">&quot;3128&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">&quot;proxy.user&quot;</span> <span class="re0">value</span>=<span class="st0">&quot;&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">&quot;proxy.pass&quot;</span> <span class="re0">value</span>=<span class="st0">&quot;&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; <span class="sc3"><span class="re1">&lt;setproxy</span> <span class="re0">proxyhost</span>=<span class="st0">&quot;${proxy.host}&quot;</span> <span class="re0">proxyport</span>=<span class="st0">&quot;${proxy.port}&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">proxyuser</span>=<span class="st0">&quot;${proxy.user}&quot;</span> <span class="re0">proxypassword</span>=<span class="st0">&quot;${proxy.password}&quot;</span><span class="re2">/&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;/target<span class="re2">&gt;</span></span></span></div>
</div>
<p>Simply add "proxy" task as dependency of another task.</p>
<p>Maybe it's easier to release libraries with other build systems or maybe it works out-of-the-box with Maven itself, but the whole process is really bad.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2013/07/16/maven-deployment-via-ant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JVx Maven Archetype project</title>
		<link>https://blog.sibvisions.com/2013/02/08/jvx-maven-archetype-project/</link>
		<comments>https://blog.sibvisions.com/2013/02/08/jvx-maven-archetype-project/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 09:44:12 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=2099</guid>
		<description><![CDATA[If you want to know how we created our Maven Archetype for JVx, simply check the source code. The project is Open Source and licensed under Apache 2.0.
The project contains a simple ANT build with two important targets. The first is start.complete. This target creates the archetype archive and deploys it to our sonatype repository. [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to know how we created our Maven Archetype for JVx, simply check the <a href="http://sourceforge.net/p/jvxapparchetype/code/11/tree/">source code</a>. The <a href="http://sourceforge.net/projects/jvxapparchetype/">project</a> is Open Source and licensed under Apache 2.0.</p>
<p>The project contains a simple ANT build with two important targets. The first is <strong>start.complete</strong>. This target creates the archetype archive and deploys it to our sonatype repository. The second target is <strong>start.recreate</strong>. This target is very cool because it cleans the archetype project (mvn clean), installs the archetype in your local repository (mvn install) and creates a new project based on the installed archetype (mvn archetype:generate).</p>
<p>Usually, you have to use scripts, the command-line or external tools to do all your tests. We automated the whole process. Our build uses the maven integration for ant. </p>
<p>The integration tasks were a little bit strange but after some tests we made it working. The trick was that the build.xml and pom.xml files must be stored in separate folders. Otherwise project creation based on an archetype didn't work.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2013/02/08/jvx-maven-archetype-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JVx&#039; Maven Archetype</title>
		<link>https://blog.sibvisions.com/2013/02/04/jvx-maven-archetype/</link>
		<comments>https://blog.sibvisions.com/2013/02/04/jvx-maven-archetype/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 13:00:56 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Archetype]]></category>
		<category><![CDATA[JVx]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=2072</guid>
		<description><![CDATA[JVx is available in all public Maven repositories and we added a JVx Application Archetype that creates the whole project structure for you. Use our archetype and you'll get a full configured JVx' Application - in few seconds.
The archetype:


&#160;
GroupId
&#160;
com.sibvisions.jvx


&#160;
ArtifactId
&#160;
jvxapplication-archetype


&#160;
Version
&#160;
1.1.5


&#160;
Repository
&#160;
http://repo1.maven.org/maven2/


Use your preferred IDE to create your JVx project. The archetype will create 4 new Maven projects. [...]]]></description>
			<content:encoded><![CDATA[<p>JVx is available in all <a href="http://search.maven.org/#search%7Cga%7C1%7Cjvx">public Maven repositories</a> and we added a <strong>JVx Application Archetype</strong> that creates the whole project structure for you. Use our archetype and you'll get a full configured JVx' Application - in few seconds.</p>
<p>The archetype:</p>
<table>
<tr>
<td style="width: 15px;">&nbsp;</td>
<td><b>GroupId</b></td>
<td>&nbsp;</td>
<td>com.sibvisions.jvx</td>
</tr>
<tr>
<td style="width: 15px;">&nbsp;</td>
<td><b>ArtifactId</b></td>
<td>&nbsp;</td>
<td>jvxapplication-archetype</td>
</tr>
<tr>
<td style="width: 15px;">&nbsp;</td>
<td><b>Version</b></td>
<td>&nbsp;</td>
<td>1.1.5</td>
</tr>
<tr>
<td style="width: 15px;">&nbsp;</td>
<td><b>Repository</b></td>
<td>&nbsp;</td>
<td>http://repo1.maven.org/maven2/</td>
</tr>
</table>
<p>Use your preferred IDE to create your JVx project. The archetype will create <strong>4 new Maven projects</strong>. The first project is the master project. It references 3 modules. The first module is the client, the second one is the server and the third one is a war module.</p>
<p>The client module/project contains all UI relevant classes like Application and Screens. The server module/project contains the business logic of your application. The war module/project creates a full functional web application archive (war) and allows you to publish your application with Eclipse WTP.</p>
<p>The client project contains a preconfigured JVx Application with one simple work-screen. It contains the class <strong>MainApplication</strong> which contains a main method. Simply start <em>MainApplication</em> and login with <em>username</em> (<strong>admin</strong>) and <em>password</em> (<strong>admin</strong>). The application doesn't need a database because it uses a <em>XmlSecurityManager</em> and an <em>AbstractMemStorage</em>. It only is an example application and not for production use!</p>
<p>Use the war project to create deployable war files. We've used it successfully with e.g. Tomcat. After deployment, simply open the application URL - <strong>http://localhost/firstapp</strong> - (replace firstapp with your application name) and login. The application is also available via JNLP - <strong>http://localhost/firstapp/application.jnlp</strong>.</p>
<p>If you want to test your desktop application with your application server, e.g. Tomcat with Eclipse WTP, simply change the connection in your application. The default connection is a <em>DirectServerConnection</em>. This means that client and server run in the same VM. If you change the connection to <em>HttpConnection</em>, a remote server will be used. An example is available in the application source code.</p>
<p>The JVx Application Archetype creates a full functional 3tier application. It's preconfigured to run as desktop application and with an application server like Tomcat. Don't think about project creation and directory conventions. <strong>It simply works</strong>!</p>
<p>Have a look at an example project:</p>
<table>
<tr>
<td><div id="attachment_2089" class="wp-caption alignnone nomargin" style="width: 308px"><a href="http://blog.sibvisions.com/wp-content/uploads/2013/02/jvx_firstapp.jpg" rel="lightbox[2072]"><img src="http://blog.sibvisions.com/wp-content/uploads/2013/02/jvx_firstapp-298x300.jpg" alt="Standard application" title="jvx_firstapp" width="298" height="300" class="size-medium wp-image-2089" /></a><p class="wp-caption-text">Standard application</p></div></td>
<td>&nbsp;</td>
<td><div id="attachment_2090" class="wp-caption alignnone nomargin" style="width: 310px"><a href="http://blog.sibvisions.com/wp-content/uploads/2013/02/jvxprojects_eclipse.jpg" rel="lightbox[2072]"><img src="http://blog.sibvisions.com/wp-content/uploads/2013/02/jvxprojects_eclipse-300x187.jpg" alt="Eclipse projects" title="jvxprojects_eclipse" width="300" height="187" class="size-medium wp-image-2090" /></a><p class="wp-caption-text">Eclipse projects</p></div></td>
</tr>
</table>
<p>Watch following video to see how it works:</p>
<div class="wp-caption aligncenter nomargin" style="width: 430px"><iframe width="420" height="315" src="http://www.youtube.com/embed/UJmm2oZY5JM" frameborder="0" allowfullscreen></iframe><br />
<p class="wp-caption-text">JVx' Maven Archetype</p></div>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2013/02/04/jvx-maven-archetype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JVx with Maven</title>
		<link>https://blog.sibvisions.com/2013/01/30/jvx-with-maven/</link>
		<comments>https://blog.sibvisions.com/2013/01/30/jvx-with-maven/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 12:00:41 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[JVx]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=2057</guid>
		<description><![CDATA[We're pleased to announce that JVx is available in the public maven repositories.
Use following dependency in your pom.xml:

&#60;dependency&#62; &#160;
&#160; &#160;&#60;groupId&#62;com.sibvisions.jvx&#60;/groupId&#62; &#160;
&#160; &#160;&#60;artifactId&#62;jvxall&#60;/artifactId&#62; &#160;
&#160; &#160;&#60;version&#62;1.1&#60;/version&#62; &#160;
&#60;/dependency&#62;

for your server project and following dependency:

&#60;dependency&#62; &#160;
&#160; &#160;&#60;groupId&#62;com.sibvisions.jvx&#60;/groupId&#62; &#160;
&#160; &#160;&#60;artifactId&#62;jvxclient&#60;/artifactId&#62; &#160;
&#160; &#160;&#60;version&#62;1.1&#60;/version&#62; &#160;
&#60;/dependency&#62;

for your client project.
The differences between jvxclient and jvxall are: The client does not contain server classes and [...]]]></description>
			<content:encoded><![CDATA[<p>We're pleased to announce that JVx is available in the public maven repositories.</p>
<p>Use following dependency in your pom.xml:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span> &nbsp;<br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.sibvisions.jvx<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span> &nbsp;<br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>jvxall<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span> &nbsp;<br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>1.1<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span> &nbsp;<br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span></div>
</div>
<p>for your server project and following dependency:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;dependency<span class="re2">&gt;</span></span></span> &nbsp;<br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;groupId<span class="re2">&gt;</span></span></span>com.sibvisions.jvx<span class="sc3"><span class="re1">&lt;/groupId<span class="re2">&gt;</span></span></span> &nbsp;<br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;artifactId<span class="re2">&gt;</span></span></span>jvxclient<span class="sc3"><span class="re1">&lt;/artifactId<span class="re2">&gt;</span></span></span> &nbsp;<br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>1.1<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span> &nbsp;<br />
<span class="sc3"><span class="re1">&lt;/dependency<span class="re2">&gt;</span></span></span></div>
</div>
<p>for your client project.<br />
The differences between jvxclient and jvxall are: The client does not contain server classes and is about 200Kb smaller.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2013/01/30/jvx-with-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
