PDA

View Full Version : Java Development helpertjes


AngeluS
03-12-2007, 10:29
Wie heeft er hier al een Java dev environment opgezet met tools voor code analysis, continous integration, automated builds enzovoorts?

De dingen waar ik momenteel naar aan het kijken ben zijn:

Findbugs voor static code analysis
PMD voor code analysis en code style
Cobertura voor code coverage
Hudson voor continous integration
Ant of Maven voor automated build

De vraag nu is, wie heeft al met een of meerdere van deze tools gewerkt en wat denk je er van? Is het een goede combinatie om allemaal samen te doen? Enige info/uitleg/tutorial over hoe deze tools op te zetten kan ook altijd handig zijn, maar laat het dan uitleg/tutorial zijn met persoonlijke ervaringen enzo. De standaard tutorialtjes kan ik ook zelf wel vinden.

Bavo
03-12-2007, 10:52
Ge zijt echt Technical Architect geworden hé? Ze vroegen het me ook, heb gezegd dat ik eerst nog wat wil leren als dev. Anyway.

Findbugs: werkt. Er zijn veel varianten van (PMD bvb). Het komt hem er vooral op aan dat te configureren tot op een niveau dat het je niet teveel treitert met onbenulligheden.

PMD: Zoals findbugs dus. De standaard configs geven al fouten als je vars niet final maakt wanneer dat kan. Of bij het gooien van Exception bvb. Dat is een last. Maar het kan wel nut hebben voor code style. Code quality echter zou meer moeten afhangen van JUnit tests. Ongeveer hetzelfde als checkstyle.

Cobertura: Daar heb je de unit tests dus. Minstens 80% coverage is een goeie guideline. Integreert mooi met continuous integration.
Hudson: Dont know. En dat zegt al iets, want heb al gewerkt met Cruise Control (heel gratis en veel config), met Continuum (als je een Maven-mens bent) en uiteindelijk Bamboo. Bamboo is dé sit bij uitstek, maar het kost wel wat. Bamboo is van de mensne van Jira o.a. Veel simpeler en mooier (naar de klant toe bvb) dan Cruise Control. Het ondersteunt ook Cobertura e.d

Ant/Maven: Maven natuurlijk. Ant is maintenance hell. Het was leuk toen iedereen nog via command line moest werken. Nu heb je Maven voor structuur. Het vereist wat denkwerk om een strcutuur uit te denken (en in dit project vooral release managment van artifacts) maar eens dat bolt, bolt het voor iedereen. Transparant. Het is vanaf dan simpel om mee te werken, nieuwe projecten zijn gewoon copy-paste van de oude poms.
Maven ondersteunt ook findbugs, PMD, cobertura etc. Hell, Maven support zelfs versioning zoals SVN/CVS.

AngeluS
03-12-2007, 11:29
Het zou wel interessant zijn mocht ik m'n goesting doen en al deze tools gebruiken maar het kan ook zijn dat de groep developers te klein gaat zijn om dit helemaal zo recht te zetten en dan zal ik maar klein deeltje ervan kunnen gebruiken. Dat gaat allemaal besproken worden met de project manager deze week.

Hudson is gelijk cruise control blijkbaar, dat is toch wat die mannen van IBM hier zeggen.

Bjorn
03-12-2007, 11:57
Bavo, wat is eigenlijk een oplossing voor Maven als je met filter files werkt en je bent bezig in een dev omgeving?

Stel, je hebt een package die instaat voor een connectie met een DB. Je configureert dat in een xml file, maar voor dev als prod zijn dat dus verschillende waarden voor server en username/pass. Maar als je met filterfiles werkt, staat in uw configfile ${server.ip}. Eclipse valt daarover (wat normaal is) en bvb unit tests bollen dan niet meer.

Bavo
03-12-2007, 13:07
Het idee hier is om een resources folder toe te voegen onder uw /test folder (src/test/resources) en dat die wordt gebruikt voor unit tests door beide maven (zie testResources tag), en door Eclipse via classpath.

Maven weet tijdens de build welke resources te gebruiken dakzij de POM config, en IDE's gebruiken enkel de resources op classpath (wat die test resources zijn dankzij project generatie via maven). Het kan mogelijk nog fout lopen als je via uw IDE deployed dan.

Je kan gerust filters gebruiken tijdens deploytime dan

Fieldy
04-12-2007, 10:49
Op mijn laatste interne dag ben ik eens zowat aan't rondkijken om nog rap rap iets bij te leren. Ben dus op maven gedoken. Probleem is dat daar geen deftige tutorials (maven.apache.org trekt zo hard op geen zak) van te vinden zijn. Iemand die mij een linkje kan geven.

Zoiets eerder, maar dan van een recente versie. :-)
http://www.theserverside.com/tt/articles/article.tss?l=MavenMagic

Bavo
04-12-2007, 11:05
Heb eens in deze guides ziten rondlezen om wat betere kennis op te bouwen:
http://maven.apache.org/guides/getting-started/index.html

Het blijft een beetje zoeken in een hoop puin. Vergelijkbaar met iets proberen te leren via Wikipedia. Tientallen URLs openklikken en proberen structuur te bewaren daarin.

ecko
04-12-2007, 11:13
Gisteren had ik mijn 2,5GB aan ebooks bij, vandaag natuurlijk niet... :( Als ik me niet vergis zat daar ook iets bij van Maven.

AngeluS
04-12-2007, 11:18
Morgen terug meepakken eh, ecko en dan kunnen we allemaal requestjes versturen naar u en kunt ge beetje kennis delen

ecko
04-12-2007, 11:21
Ik had een site gevonden waar je zowat al die ebooks kon vinden. Ben natuurlijk de url vergeten... :'(

Bavo
04-12-2007, 11:31
Zie wel dat ge Maven2 zaken bekijkt, anders is het zinloos en verwarrend. Ze zijn erg verschillend. Dat is de miserie nu met het online opzoeken van documentatie over Maven, je weet vrijwel nooit ofhet over Maven1 of 2 gaat, en zelfs de apache site is daar bijzonder verwarrend in.

Talos
04-12-2007, 11:35
http://www.flazx.com/ ?

ecko
04-12-2007, 11:59
Kan goed zijn dat het die was ja :)

Bjorn
04-12-2007, 12:39
Maven is echt een hel als het op documentatie aankomt. Ooit eens een ebook gevonden, zal eens zien of ik de link nog kan vinden in mijn e-mails (ik vrees ervoor).

Talos
04-12-2007, 13:06
http://www.devzuz.com/web/guest/products/resources#BBWM
Deze heb ik eens doorgelezen, heeft wel een beetje geholpen.

Fieldy
04-12-2007, 13:29
Die documentatie wordt genant als ge pom begint te lezen als porn.

"...parent's pom file..."

Trojan
04-12-2007, 13:37
Ik had een site gevonden waar je zowat al die ebooks kon vinden. Ben natuurlijk de url vergeten... :'(

http://www.flazx.com/ ?

Of http://www.chmpdf.com/archives/ebooks/ ?

Bjorn
04-12-2007, 13:44
http://www.devzuz.com/web/guest/products/resources#BBWM
Deze heb ik eens doorgelezen, heeft wel een beetje geholpen.

Heb ik ook gelezen, maar dat is voor Maven 1, dus onbruikbaar voor Maven2. Enfin, onbruikbaar is veel gezegd, maar er zijn toch ferm wat zaken aangepast.

Talos
04-12-2007, 14:10
Heb ik ook gelezen, maar dat is voor Maven 1, dus onbruikbaar voor Maven2. Enfin, onbruikbaar is veel gezegd, maar er zijn toch ferm wat zaken aangepast.

The latest edition of Better Builds with Maven (August 2007) covers:

• An introduction to Maven 2.0
• Advanced tools for "power" users
• Creating J2EE builds and using J2EE models
• Extending builds through plugins
• Monitoring source code, testing, dependencies and releases
• Leveraging repositories, continuous integration and dependencies
• Converting existing Ant builds


Tjien?

Moet wel de laatste versie lezen dus :-)

DumBassie
26-12-2007, 11:08
Free book:
http://www.sonatype.com/book/

Seriously, maven all the way.

- Dependency resolution.
- Centraal project model (pom.xml) waaruit je via plugins je -insert fav ide- projecten kunt genereren (met de eclipse plugin kan je ineens de sourcecode laten afhalen zodat je al je jarfiles ook niet meer afzonderlijk moet managen).
- Profiles voor resource folders. Handig om je verschillende omgevingen in te configureren.
- Source repository integration.
- Integratie met Continuum

En dan heb je nog andere handige plugins
- "mvn jetty:run" buildt je war-project, downloadt de jetty jars, start jetty en deployed je project
- checkstyle integratie
- resource files checkers (komt elke key wel in elke .properties file voor?)

Maar het grootste voordeel is toch dat vanaf je project schaalt naar, laten we zeggen 2 man, iedereen gebonden is aan de dezelfde -standaard- projectstructuur en devs ni teveel fantasiekes gaan implementeren om da ding gebuild te krijgen.

Fanboy, moi? Nah....

Bjorn
26-12-2007, 12:07
Tjien?

Moet wel de laatste versie lezen dus :-)

Tiens, ik zou gezworen hebben dat daar een ander boek stond. My bad.