Package Management and Build Tools
|
|
- Randolf Bryan
- 6 years ago
- Views:
Transcription
1 Package Management and Build Tools Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT
2 Outline Ant+Ivy (Apache) Maven (Apache) Gradle Bazel (Google) Buck (Facebook) Dr. Balázs Simon, BME, IIT 2
3 Problems of Java building JAR file: collection of.class files JAR files may have dependencies on other JAR files, but: there is no explicit dependency descriptor in the JAR there is no version information in the JAR JAR files and all their dependencies have to be collected manually very time consuming error prone: a missing dependency shows up as a ClassNotFoundException at runtime We need a tool for: describing version and dependency information of JAR files automatically collecting transitive dependencies Dr. Balázs Simon, BME, IIT 3
4 Ant+Ivy (Apache) Dr. Balázs Simon, BME, IIT 4
5 Ant Ant is a build tool Ant configuration is in XML: build.xml imperative description of the build process Similar to Unix Make: tasks + dependencies between the tasks Ant can be extended with custom task types Build tasks have to be defined manually example: clean compile jar test deploy Dr. Balázs Simon, BME, IIT 5
6 Ant example: build.xml <?xml version="1.0" encoding="utf-8"?> <project name="hello" default="compile"> <target name="clean" description="remove all artifact files"> <delete dir="classes"/> <delete file="hello.jar"/> </target> <target name="compile" description="compile the Java source code to class files"> <mkdir dir="classes"/> <javac srcdir="." destdir="classes"/> </target> <target name="jar" depends="compile" description="create a Jar file for the application"> <jar destfile="hello.jar"> <fileset dir="classes" includes="**/*.class"/> <manifest> <attribute name="main-class" value="helloprogram"/> </manifest> </jar> </target> <target name="test" depends="jar" description="test the code"> <junit printsummary="yes" haltonfailure="no"> <! > </junit> </target> clean <target name="deploy" depends="jar" description="deploy to the production environment"> <copy file="hello.jar" todir="../production/dir"/> </target> </project> test compile jar deploy 6
7 Ivy: dependency resolution for Ant Ant cannot resolve JAR dependencies by itself you had to collect all the JARs manually before Ivy Ivy is an extension for Ant which can resolve JAR dependencies Ivy can also resolve transitive dependencies similarly to Maven but Maven is much more than just a dependency resolver ivy.xml ivy-module version="2.0"> <info organisation="com.companyname" module="my-project"/> <dependencies> <dependency org="junit" name="junit" rev="4.11"/> </dependencies> /ivy-module> build.xml <project xmlns:ivy="antlib:org.apache.ivy.ant" name="my-project" default="jar"> <target name="resolve"> <ivy:retrieve /> </target> <! > </project> Dr. Balázs Simon, BME, IIT 7
8 Properties of Ant+Ivy Advantages: full control of the build process flexible relatively fast great IDE support for all modern IDEs Disadvantages: no common convention for build steps and project structure a new member of the team has a hard time getting familiar with the build process Ant s XML is write-only the build.xml quickly becomes a mess: very hard to maintain Dr. Balázs Simon, BME, IIT 8
9 Maven (Apache) Dr. Balázs Simon, BME, IIT 9
10 Maven Build tool and dependency management system Maven configuration is in XML: pom.xml declarative description of version information, dependencies and build steps Maven promotes convention over configuration: consistent project structure consistent build model Maven is extensible with plugins e.g. generating files, running special tests, creating special artifacts, etc. Maven build artifact: usually a JAR file three properties: group id: identifier of the organization (usually the DNS name in reverse order) artifact id: identifier of the artifact within the group version: semantic version number Maven stores build artifacts and their dependency information in repositories Dr. Balázs Simon, BME, IIT 10
11 Maven repository Repositories hold build artifacts (usually JAR files) and their dependency information Two types of repositories: local: local computer (~/.m2/ folder) it is a cache of remote downloads also contains own build artifacts not yet released remote: remote server provides build artifacts for downloading Remote repository: public: available for everyone internal: internal use for a company to store private build artifacts for sharing between teams and for releases Remote repositories must be configured for maven: this is where it will look for build artifacts Maven central repository: special public repository contains the most commonly used jars and all their dependencies all well known open-source jars are in there (Apache, RedHat,...) Dr. Balázs Simon, BME, IIT 11
12 Maven repositories Developer s computer ~/.m2/ Developer s computer ~/.m2/ Company s intranet Internal maven repository Internet Public maven repository Developer s computer ~/.m2/ Individual developer s computer ~/.m2/ Dr. Balázs Simon, BME, IIT 12
13 Maven project structure Maven promotes convention over configuration: fix project structure (can be overridden if needed, but it is rarely done) Standalone application: project root src main Java sources java resources Non-Java files test java Test files resources target pom.xml Created during build Web application: project root src main java resources webapp test java resources target pom.xml Dr. Balázs Simon, BME, IIT 13
14 Maven archetypes Maven can generate projects with default contents Maven archetypes are templates for these projects e.g. standalone application, web application, etc. Standalone application: mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] Web application: mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] -DarchetypeArtifactId=maven-archetype-webapp And there are a lot of other archetypes You can even create your own. Dr. Balázs Simon, BME, IIT 14
15 Maven build steps Maven has a predefined set of steps in the build process can be customized, if needed The build process is incremental: only the changed parts are rebuilt Do not call clean everytime, otherwise the build process will take very long! Build lifecycle: validate Clean lifecycle: clean compile test package Example commands: mvn clean mvn package mvn clean deploy verify install deploy Dr. Balázs Simon, BME, IIT 15
16 Maven example: pom.xml <?xml version="1.0" encoding="utf-8"?> <project xmlns=" xmlns:xsi=" xsi:schemalocation=" <modelversion>4.0.0</modelversion> <groupid>com.companyname.project-group</groupid> <artifactid>project</artifactid> <version>1.0</version> Group identifier Our project s identifier </project> Version Artifact identifier project-1.0 Dr. Balázs Simon, BME, IIT 16
17 Maven version numbers Semantic version numbers: X.Y.Z-Q-W X: major (number) incremented on incompatible API changes Y: minor (number) incremented on backwards compatible API changes Z: patch (number, optional) incremented on backwards compatible bug fixes, no API changes Q: qualifier (string, optional) e.g. alpha, beta, snapshot, etc. W: build (number, optional) Examples: 1.2, 2.0, 2.1.1, SNAPSHOT, alpha-4 Dr. Balázs Simon, BME, IIT 17
18 Maven dependencies <?xml version="1.0" encoding="utf-8"?> <project xmlns=" xmlns:xsi=" xsi:schemalocation=" <modelversion>4.0.0</modelversion> <groupid>com.companyname.project-group</groupid> <artifactid>project</artifactid> <version>1.0</version> junit <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.8.2</version> <scope>test</scope> </dependency> </dependencies> </project> Scope of the dependency project-1.0 Dependency identifier (transitive dependencies will be collected automatically) Dr. Balázs Simon, BME, IIT 18
19 Maven dependencies Dependencies define the required build artifacts (JARs) Dependency: group id + artifact id + version number reference version number reference: exact number or range examples: 1.3: generally means 1.3 or later, i.e. [1.3,) [1.0]: exactly 1.0 [1.2,1.3]: 1.2 <= x <= 1.3 [1.0,2.0): 1.0 <= x < 2.0 [1.5,): x >= 1.5 A dependency can have an optional scope (compile is the default): compile: required in all build phases, also propagated to dependent projects provided: required only in the compilation and test phase, at runtime it is provided by the environment (e.g. JDK, web server, etc.) runtime: not required for compilation, but it is for execution test: only required for the test compilation and test execution phases system: similar to provided, but we have to specify the path of the JAR explicitly for the local system (at runtime it will be provided by the environment) import: use dependencies from another pom.xml Dr. Balázs Simon, BME, IIT 19
20 Maven dependency resolution Maven builds a tree from the dependencies and from all their transitive dependencies But Maven cannot use multiple versions of the same JAR at the same time It has to select a specific version: based on the version number ranges based on compatibility (minor, patch) based on the distance from the root of the tree based on which comes first log4j commonslogging 1.1 POM servlet-2.3 log4j The dependency resolution algorithm is complex, but Maven will try its best Maven will report conflicts if it cannot perform the resolution correctly (e.g. version ranges don t overlap) solution: dependencymanagement section in the POM Dr. Balázs Simon, BME, IIT 20
21 Maven dependency management There is a dependencymanagement section in the POM We can specify the exact artifact version we want to use for the whole project uses exact versions overrides transitive dependencies can be used for dependency conflict resolution It can also be used in a hierarchical Maven project to centralize dependency information for child projects simpler to define them in one common POM than to repeat them in all child POMs Dr. Balázs Simon, BME, IIT 21
22 Maven dependency management example <?xml version="1.0" encoding="utf-8"?> <project xmlns=" xmlns:xsi=" xsi:schemalocation=" <modelversion>4.0.0</modelversion> <groupid>com.companyname.project-group</groupid> <artifactid>project</artifactid> <version>1.0</version> <dependencymanagement> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.8.2</version> <scope>test</scope> </dependency> </dependencies> </dependencymanagement> <dependencies> <! > </dependencies> </project> Dependency management: Exact dependencies Other dependencies junit project
23 Maven project hierarchies Maven can also handle project hierarchies The root project references the children as modules The child projects reference the parent project Maven commands executed from the root will be also executed on the children e.g. mvn clean, mvn test, etc. Children will inherit the root s configurations and dependencies pom.xml <project> <modelversion>4.0.0</modelversion> <groupid>com.mycompany.app</groupid> <artifactid>root-project</artifactid> <version>1.0</version> <packaging>pom</packaging> Parent of other Maven projects <modules> <module>project1</module> <module>project2</module> </modules> </project> pom.xml root-project project1 pom.xml project2 pom.xml pom.xml <project> <parent> <groupid>com.mycompany.app</groupid> <artifactid>root-project</artifactid> <version>1.0</version> </parent> <modelversion>4.0.0</modelversion> <artifactid>project1</artifactid> </project> Group id and version number are inherited from the parent 23
24 Properties of Maven Advantages: consistency new team members know immediately everything clear convention for the project structure clear convention for the build steps well established, well supported easy to find solutions for problems on the net declarative dependencies are easy to write and maintain Maven resolves transitive dependencies automatically great IDE support for Eclipse, IntelliJ Disadvantages: too rigid: hard to deviate from the convention but it s usually not worth it: not following the convention is bad practice, new team members will have a hard time learning things can be slow usually when checking and downloading dependencies: as if it is downloading the whole internet can be resolved: keep a local copy of the dependencies once they are downloaded, and use offline mode use parallel builds Dr. Balázs Simon, BME, IIT 24
25 Gradle Dr. Balázs Simon, BME, IIT 25
26 Gradle Build and dependency management tool Combines Ant s power and flexibility with Maven s life-cycle and ease of use Ant does not have a fixed set of build steps and fixed project structures Maven is too strict, customizing builds is often very hard: if there is no plugin for the customization you have to create one Gradle uses a specific DSL based on Groovy shorter and clearer than XML the DSL readable, since it is designed to solve a specific problem: move software through its life-cycle compilation and static analysis packaging and deployment using Groovy code you can customize builds however you want but it can mean that you will deviate from a convention or standard Gradle uses its own dependency resolution engine Dr. Balázs Simon, BME, IIT 26
27 Gradle project structure Gradle follows Maven s convention in the project structure but it can be customized if necessary To compile Java we have to add the Java plugin Minimal Gradle script to compile a standalone application based solely on the JDK (no 3 rd party JARs): build.gradle apply plugin: 'java' Build command: gradle build Standalone application: project root Dr. Balázs Simon, BME, IIT 27 src main java resources test java resources target build.gradle Java sources Non-Java files Test files Created during build
28 Gradle dependency management Gradle follows Maven s groupid:artifactid:version (GAV) convention to identify artifacts compact form: 'log4j:log4j:1.2.17' extended form: group: 'log4j', name: 'log4j', version: '1.2.17' Example: dependencies { compile filetree(dir: 'libs', include: ['*.jar']) compile group: 'log4j', name: 'log4j', version: '1.2.17' testcompile 'junit:junit:4.12' } Gradle can use various repositories for resolution: Maven, Ivy, Example: repositories { mavencentral() maven (" ivy { url " } } Dr. Balázs Simon, BME, IIT 28
29 Gradle example with 3 rd party dependencies build.gradle apply plugin: 'java' repositories { mavencentral() } dependencies { compile 'log4j:log4j:1.2.17' testcompile 'junit:junit:4.12' } Much shorter and clearer than Ant or Maven Dr. Balázs Simon, BME, IIT 29
30 Properties of Gradle Advantages: follows Maven s convention easy to use flexible Groovy DSL is nicer than XML IDE support for Eclipse, IntelliJ, Netbeans Disadvantages: very slow builds can be mitigated: daemon mode but it is still slow memory leaks customized builds deviating from the convention are harder to learn and maintain Dr. Balázs Simon, BME, IIT 30
31 Bazel (Google) Dr. Balázs Simon, BME, IIT 31
32 Bazel Multi-platform build tool can build software for many target platforms (Linux, Mac OS X, Windows, Android) Multi-language support can build software written in many languages (Java, C++, Objective-C), and can be extended for others Custom, simple high-level build language each library, test and binary must specify its direct dependencies completely Reproducible builds all builds are incremental and will always produce the same result Scalable can handle large builds, even millions of lines of code Dr. Balázs Simon, BME, IIT 32
33 Bazel example: Java Minimal Bazel script to compile a standalone application based solely on the JDK (no 3 rd party JARs): BUILD java_binary( name = "my-runner", srcs = glob(["**/*.java"]), main_class = "com.example.projectrunner", ) Dr. Balázs Simon, BME, IIT 33
34 Bazel example: Java As projects get larger it's important to break up the build into self-contained libraries: BUILD java_binary( name = "my-other-runner", srcs = ["src/main/java/com/example/projectrunner.java"], main_class = "com.example.projectrunner", deps = [":greeter"], ) java_library( name = "greeter", srcs = ["src/main/java/com/example/greeting.java"], ) Bazel can parallelize build steps! If greeter doesn t change, it won t be recompiled! Dr. Balázs Simon, BME, IIT 34
35 Properties of Bazel Advantages: simple build files very fast scalable reproducible builds can resolve external transitive dependencies (e.g. Maven) clear convention for the build steps IDE support for IntelliJ, Xcode partially for Eclipse Disadvantages: no convention for the project structure Dr. Balázs Simon, BME, IIT 35
36 Buck (Facebook) Dr. Balázs Simon, BME, IIT 36
37 Buck Similar to Bazel Written by people at Facebook who worked before at Google before Google open-sourced Bazel Multi-platform build tool Multi-language support Custom, simple high-level build language Reproducible builds Scalable Dr. Balázs Simon, BME, IIT 37
38 Buck example: Java BUCK java_library( name = 'greet_api', srcs = ['Greeter.java', 'Group.java'], ) java_library( name = 'hello_world', srcs = ['HelloGreeter.java', 'WorldGroup.java'], deps = [':greet_api'], ) Dr. Balázs Simon, BME, IIT 38
39 Properties of Buck Advantages: simple build files very fast scalable reproducible builds can resolve external transitive dependencies (e.g. Maven) clear convention for the build steps IDE support for IntelliJ, Xcode Disadvantages: no convention for the project structure no IDE support for Eclipse Dr. Balázs Simon, BME, IIT 39
40 Summary Dr. Balázs Simon, BME, IIT 40
41 Which one to use? Build time is precious Bazel and Buck are really fast! Flexibility Gradle is very flexible Bazel and Buck are relatively flexible but be careful: anything deviating from a convention is hard to learn and maintain Stability, consistency Maven is mature, reliable and consistent Maintainability Maven, Bazel, Buck are simple and easy to maintain IDE support Ant and Maven have great IDE support Dr. Balázs Simon, BME, IIT 41
Maven. INF5750/ Lecture 2 (Part II)
Maven INF5750/9750 - Lecture 2 (Part II) Problem! Large software projects usually contain tens or even hundreds of projects/modules Very different teams may work on different modules Will become messy
More information... Fisheye Crucible Bamboo
Sander Soo MSc Computer Science Oracle Certified Professional (Java SE) Nortal (email: sander.soo@nortal.com) Mercurial Java Spring Framework AngularJS Atlassian stack... Fisheye Crucible Bamboo 2 Manual
More informationMAVEN INTERVIEW QUESTIONS
MAVEN INTERVIEW QUESTIONS http://www.tutorialspoint.com/maven/maven_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Maven Interview Questions have been designed specially to get
More informationBuild automation. CSE260, Computer Science B: Honors Stony Brook University
Build automation CSE260, Computer Science B: Honors Stony Brook University http://www.cs.stonybrook.edu/~cse260 2 Build Automation Build automation is the act of scripting or automating a wide variety
More informationSimplified Build Management with Maven
Simplified Build Management with Maven Trasys Greece Kostis Kapelonis 11/06/2010 Menu Kitchen says hi!(motivation) Starters (Maven sample pom) Soup (Maven philosophy) Main dish (Library management) Side
More informationgradle : Building Android Apps Mobel Meetup
gradle : Building Android Apps Mobel Meetup 2013-10-15 @alexvb http://alex.vanboxel.be/ Biography Working with Java since the dark ages at Progress Software, Alcatel-Lucent, Interested in science and technology
More informationMaven POM project modelversion groupid artifactid packaging version name
Maven The goal of this document is to introduce the Maven tool. This document just shows some of the functionalities of Maven. A complete guide about Maven can be found in http://maven.apache.org/. Maven
More informationMaven Introduction to Concepts: POM, Dependencies, Plugins, Phases
arnaud.nauwynck@gmail.com Maven Introduction to Concepts: POM, Dependencies, Plugins, Phases This document: http://arnaud-nauwynck.github.io/docs/maven-intro-concepts.pdf 31 M!! What is Maven? https://maven.apache.org/
More informationTopics covered. Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session. Maven 2
Maven Maven 1 Topics covered Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session Maven 2 Introduction to Maven Maven 3 What is Maven? A Java project management
More informationSoftware Engineering - Development Infrastructure 2. Kristjan Talvar Nortal
Software Engineering - Development Infrastructure 2 Kristjan Talvar kristjan.talvar@nortal.com Nortal Topics Different build tools Gradle demo Github as collaboration tool About me Java dev for almost
More informationWhat is Maven? Apache Maven is a software project management and comprehension tool (build, test, packaging, reporting, site, deploy).
Plan What is Maven? Links : mvn command line tool POM : 1 pom.xml = 1 artifact POM POM Inheritance Standard Directory Layout Demo on JMMC projects Plugins Conclusion What is Maven? Apache Maven is a software
More informationProduced by. Agile Software Development. Eamonn de Leastar
Agile Software Development Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie pacemaker-console
More informationBuild Automation Kurt Christensen
Build Automation Kurt Christensen Kurt Christensen Computer programmer (17 years) and software development coach (9 years) github.com/projectileboy Available for purchase at: kurt.j.christensen@gmail.com
More informationSession 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p
Session 24 Spring Framework Introduction 1 Reading & Reference Reading dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p http://engineering.pivotal.io/post/must-know-spring-boot-annotationscontrollers/
More informationConstruction: version control and system building
Construction: version control and system building Paul Jackson School of Informatics University of Edinburgh The problem of systems changing Systems are constantly changing through development and use
More informationJAVA V Tools in JDK Java, winter semester ,2017 1
JAVA Tools in JDK 1 Tools javac javadoc jdb javah jconsole jshell... 2 JAVA javac 3 javac arguments -cp -encoding -g debugging info -g:none -target version of bytecode (6, 7, 8, 9) --release -source version
More informationSoftware Building (Sestavování aplikací)
Software Building (Sestavování aplikací) http://d3s.mff.cuni.cz Pavel Parízek parizek@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Outline Maven NuGet Gradle GNU build
More informationComponent based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth
Component based Development Web Application Development Zsolt Tóth University of Miskolc 2017 Zsolt Tóth (University of Miskolc) Component based Development 2017 1 / 30 Table of Contents 1 2 3 4 Zsolt
More informationMAVEN MOCK TEST MAVEN MOCK TEST I
http://www.tutorialspoint.com MAVEN MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Maven. You can download these sample mock tests at your local machine
More informationHello Gradle. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.
Hello Gradle TestNG, Eclipse, IntelliJ IDEA Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2 Dávid Bedők 2017.09.18. v0.2 Dávid Bedők (UNI-OBUDA) Hello JavaEE 2017.09.18.
More informationGant as Ant and Maven Replacement
Gant as Ant and Maven Replacement Dr Russel Winder Concertant LLP russel.winder@concertant.com russel@russel.org.uk Groovy and Grails User Group 2007 Russel Winder 1 Aims and Objectives Convince people
More informationApache Maven. Created by anova r&d bvba
Apache Maven Created by anova r&d bvba http://www.anova.be This work is licensed under the Creative Commons Attribution 2.0 Belgium License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/be/
More informationHello Maven. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.
Hello Maven TestNG, Eclipse, IntelliJ IDEA Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2 Dávid Bedők 2017.09.19. v0.1 Dávid Bedők (UNI-OBUDA) Hello JavaEE 2017.09.19.
More informationDevOps and Maven. Eamonn de Leastar Dr. Siobhán Drohan Produced by:
DevOps and Maven Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ Dev team created a solution for production.
More informationSTQA Mini Project No. 1
STQA Mini Project No. 1 R (2) C (4) V (2) T (2) Total (10) Dated Sign 1.1 Title Mini-Project 1: Create a small application by selecting relevant system environment/ platform and programming languages.
More informationSetting up a Maven Project
Setting up a Maven Project This documentation describes how to set up a Maven project for CaptainCasa. Please use a CaptainCasa version higher than 20180102. There were quite some nice changes which were
More informationJAVA V Annotations Java, winter semester ,2016 1
JAVA Annotations 1 Annotations (metadata) since Java 5 allow attaching information to elements of code (to classes, methods, fields,...) in general, can be used in the same places as visibility modifiers
More informationRepository Management and Sonatype Nexus. Repository Management and Sonatype Nexus
Repository Management and Sonatype Nexus i Repository Management and Sonatype Nexus Repository Management and Sonatype Nexus ii Contents 1 Objectives 1 2 Development Today 1 3 But What Is A Component?
More informationAdministering Apache Geronimo With Custom Server Assemblies and Maven. David Jencks
Administering Apache Geronimo With Custom Server Assemblies and Maven David Jencks 1 What is Geronimo? JavaEE 5 certified application server from Apache Modular construction Wires together other projects
More informationBuild Tools. Software Engineering SS A tool was needed. Agenda for today. Build tools. Software complexity. Build tools
Agenda for today Build Tools Software Engineering SS 2007 Build Tools Available 4. Presentation Objectives - Use modern build systems for software Software Engineering, lecture #: Topic 2 Software complexity
More informationI Got My Mojo Workin'
I Got My Mojo Workin' Gary Murphy Hilbert Computing, Inc. http://www.hilbertinc.com/ glm@hilbertinc.com Gary Murphy I Got My Mojo Workin' Slide 1 Agenda Quick overview on using Maven 2 Key features and
More informationBuild Tools. Software Engineering SS 2007
Build Tools Software Engineering SS 2007 Agenda for today Build Tools 1. Motivation 2. Key Concepts 3. Tools Available 4. Presentation 5. Discussion Objectives - Use modern build systems for software Software
More informationSet up Maven plugins in Eclipse. Creating a new project
In this tutorial, we describe steps for setting up a Maven project that uses libsbolj in Eclipse. Another tutorial follows this one which explains how we use SBOL 2.0 to represent the function of a state-of-the-art
More information4. Check the site specified in previous step to work with, expand Maven osgi-bundles, and select slf4j.api,
In this tutorial, we describe steps for setting up a Maven project that uses libsbolj in Eclipse. Another tutorial follows this one which explains how we use SBOL 2 to represent the function of a state-of-the-art
More informationMAVEN MOCK TEST MAVEN MOCK TEST IV
http://www.tutorialspoint.com MAVEN MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Maven. You can download these sample mock tests at your local machine
More informationTuesday, April 26, 2011
Modular Class Loading With JBoss Modules David M. Lloyd Senior Software Engineer, Red Hat, Inc. The Class Path is Dead - Mark Reinhold, 2009 What does this mean? The limitations inherent in -classpath
More informationThis tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects.
About the Tutorial Gradle is an open source, advanced general purpose build management system. It is built on ANT, Maven, and lvy repositories. It supports Groovy based Domain Specific Language (DSL) over
More informationMaven in the wild. An introduction to Maven
Maven in the wild An introduction to Maven Maven gone wild!! An introduction to Maven Presentation Summary An overview of Maven What Maven provides? Maven s principles Maven s benefits Maven s features
More informationAUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS
AUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS CONTENT Introduction. List of tools used to create Testing Framework Luminous LMS work scheme Testing Framework work scheme Automation scenario set lifecycle
More informationContent. Development Tools 2(57)
Development Tools Content Project management and build, Maven Unit testing, Arquillian Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools
More informationJAVA. Java Management Extensions JMX
JAVA Java Management Extensions JMX Overview part of JDK since version 5 previously an external set of jar archives MBean = Managed Java Bean beans intended for managing something (device, application,
More informationGroovy. Extending Java with scripting capabilities. Last updated: 10 July 2017
Groovy Extending Java with scripting capabilities Last updated: 10 July 2017 Pepgo Limited, 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United Kingdom Contents About Groovy... 3 Install Groovy...
More informationMAVEN SUCKS NO(W) REALLY
MAVEN SUCKS NO(W) REALLY 26.01.2009 Building Projects with Maven vs. Ant by Karl Banke In the past few years Maven has surpassed Ant as the build tool for choice for many projects. Its adoption by most
More informationPackaging, automation, Continuous Integration
LP IDSE - GL Packaging, automation, Continuous Integration Based on Simon Urli and Sébastien Mosser courses 18/10/2016 Cécile Camillieri/Clément Duffau 1 Previously. 2 Development process Develop features
More informationSonatype CLM - IDE User Guide. Sonatype CLM - IDE User Guide
Sonatype CLM - IDE User Guide i Sonatype CLM - IDE User Guide Sonatype CLM - IDE User Guide ii Contents 1 Introduction 1 2 Installing Sonatype CLM for Eclipse 2 3 Configuring Sonatype CLM for Eclipse 5
More informationThe Workshop. Slides (you have a copy in the zip) Practical labs Ask questions
Gradle Workshop The Workshop Slides (you have a copy in the zip) Practical labs Ask questions The Labs Pairing is encouraged Solutions are available (but avoid cheating) Take your time and experiment First
More informationApache Maven MarsJUG. Arnaud Héritier exo platform Software Factory Manager
Apache Maven MarsJUG Arnaud Héritier exo platform Software Factory Manager Software Factory Manager at exo platform In charge of tools and methods Arnaud Héritier Committer since 2004 and member of the
More informationWhy switch exist-db from Ant to Maven?
exist-db Developers Meetup Monday, 29 th March 2011 @ Prague Why switch exist-db from Ant to Maven? adam@exist-db.org www.existsolutions.com Why move away from Ant? The Current Situation Lots of pain associated
More informationJPA Tools Guide (v5.0)
JPA Tools Guide (v5.0) Table of Contents Maven Plugin.............................................................................. 2 pom.xml Integration.......................................................................
More informationJDO Tools Guide (v5.1)
JDO Tools Guide (v5.1) Table of Contents Maven Plugin.............................................................................. 2 pom.xml Integration.......................................................................
More informationEPL451: Data Mining on the Web Lab 6
EPL451: Data Mining on the Web Lab 6 Pavlos Antoniou Γραφείο: B109, ΘΕΕ01 University of Cyprus Department of Computer Science What is Mahout? Provides Scalable Machine Learning and Data Mining Runs on
More informationBreaking Apart the Monolith with Modularity and Microservices CON3127
Breaking Apart the Monolith with Modularity and Microservices CON3127 Neil Griffin Software Architect, Liferay Inc. Specification Lead, JSR 378 Portlet 3.0 Bridge for JavaServer Faces 2.2 Michael Han Vice
More informationAdvanced Dependency Management with Gradle. Benjamin Muschko, Gradle Inc.
Advanced Dependency Management with Gradle Benjamin Muschko, Gradle Inc. Custom requirements in complex builds Dependency management requires conscious decisions and trade- offs Transitive dependencies
More informationUnit Testing. CS 240 Advanced Programming Concepts
Unit Testing CS 240 Advanced Programming Concepts F-22 Raptor Fighter 2 F-22 Raptor Fighter Manufactured by Lockheed Martin & Boeing How many parts does the F-22 have? 3 F-22 Raptor Fighter What would
More information(Refer Slide Time: 0:48)
Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Lecture 10 Android Studio Last week gave you a quick introduction to android program. You develop a simple
More informationPour aller plus loin : Programmation outillée
Pour aller plus loin : Programmation outillée Denis Conan Revision : 2521 CSC4102 Télécom SudParis Décembre 2017 Pour aller plus loin : Programmation outillée Table des matières Pour aller plus loin :
More informationGetting Started with Gradle
Getting Started with Gradle Speaker Sterling Greene ( sterling@gradle.com) Principal Engineer, Gradle Inc Clone the example project Agenda Gradle Project History Gradle Best Practices Gradle Basics Java
More informationCSE 403 Lecture 11. Static Code Analysis. Reading: IEEE Xplore, "Using Static Analysis to Find Bugs"
CSE 403 Lecture 11 Static Code Analysis Reading: IEEE Xplore, "Using Static Analysis to Find Bugs" slides created by Marty Stepp http://www.cs.washington.edu/403/ FindBugs FindBugs: Java static analysis
More informationIntroduction to project industrialization using Maven YaJUG 06/10/2009. Copyright Pierre-Antoine Grégoire License Creative Commons 2.
Introduction to project industrialization using Maven YaJUG 06/10/2009 Event http://www.yajug.lu October 06 2009 Best Practices and Tools for your build environments Speaker Pierre-Antoine Grégoire I.T.Architect
More informationGradle Leveraging Groovy for Building Java Applications. Hans Dockter Gradle Project Lead
Gradle Leveraging Groovy for Building Java Applications Hans Dockter Gradle Project Lead mail@dockter.biz About Me Founder and Project Lead of Gradle Independent Consultant Trainer for Skills Matter (TTD,
More informationCore XP Practices with Java and Eclipse: Part 1
1. Introduction Core XP Practices with Java and Eclipse: Part 1 This tutorial will illustrate some core practices of Extreme Programming(XP) while giving you a chance to get familiar with Java and the
More informationmaven Build System Making Projects Make Sense
maven Build System Making Projects Make Sense Maven Special High Intensity Training Zen Questions Why are we here? What is a project? What is Maven? What is good? What is the sound of one hand clapping?
More informationChapter 1. Installation and Setup
Chapter 1. Installation and Setup Gradle ( Ant) HSQLDB Hibernate Core Project Hierarchy 1 / 18 Getting an Gradle Distribution Why do I care? Ant vs Maven vs Gradle How do I do that? http://www.gradle.org/
More informationSonatype CLM Enforcement Points - Nexus. Sonatype CLM Enforcement Points - Nexus
Sonatype CLM Enforcement Points - Nexus i Sonatype CLM Enforcement Points - Nexus Sonatype CLM Enforcement Points - Nexus ii Contents 1 Introduction 1 2 Sonatype CLM for Repository Managers 2 3 Nexus Pro
More informationSelenium Testing Course Content
Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference
More informationApache Isis Maven plugin
Apache Isis Maven plugin Table of Contents 1. Apache Isis Maven plugin................................................................. 1 1.1. Other Guides.........................................................................
More informationREST Web Services Objektumorientált szoftvertervezés Object-oriented software design
REST Web Services Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline HTTP REST REST principles Criticism of REST CRUD operations with REST RPC operations
More informationWhat s NetBeans? Like Eclipse:
What s NetBeans? Like Eclipse: It is a free software / open source platform-independent software framework for delivering what the project calls "richclient applications" It is an Integrated Development
More informationGradle. The Basics and Beyond
Gradle The Basics and Beyond Contact Info Ken Kousen Kousen IT, Inc. ken.kousen@kousenit.com http://www.kousenit.com http://kousenit.wordpress.com (blog) @kenkousen Videos (available on Safari) O'Reilly
More informationCOMP220/285 Lab sessions 1-3
COMP220/285 Lab sessions 1-3 Contents General Notes... 2 Getting started... 2 Task 1 Checking your ANT install... 2 Task 2 Checking your JUnit install... 2 Task 3 JUnit documention review... 4 Task 4 Ant
More informationGetting started with Geomajas. Geomajas Developers and Geosparc
Getting started with Geomajas Geomajas Developers and Geosparc Getting started with Geomajas by Geomajas Developers and Geosparc 1.12.0-SNAPSHOT Copyright 2010-2014 Geosparc nv Abstract Documentation for
More informationIndex. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39
Index A --add-exports option, 28, 134 136, 142, 192 Apache Maven compatibility, 214 Compiler plugin, 212, 214 goals, 209 JDeps plugin goals, 210 options, 211 JEP 223 New Version-String scheme, 209 Automatic
More informationDistributing JavaFX Applications with Java WebStart and Artifactory
Distributing JavaFX Applications with Java WebStart and Artifactory Frederic Simon Yoav Landman JFrog Ltd. About Us Where frogs can code > 10+ years experience in build and dev environments > Promote hassle-free
More informationHP Operations Orchestration
HP Operations Orchestration Software Version: 10.22 Windows and Linux Operating Systems Action Developers Guide Document Release Date: July 2015 Software Release Date: July 2015 Legal Notices Warranty
More informationStruts 2 Maven Archetypes
Struts 2 Maven Archetypes DEPRECATED: moved to http://struts.apache.org/maven-archetypes/ Struts 2 provides several Maven archetypes that create a starting point for our own applications. Contents 1 DEPRECATED:
More informationWhat s new in IBM Operational Decision Manager 8.9 Standard Edition
What s new in IBM Operational Decision Manager 8.9 Standard Edition Release themes User empowerment in the Business Console Improved development and operations (DevOps) features Easier integration with
More information#jenkinsconf. Jenkins user plugin. This time it's. Jenkins User Conference Israel. Shiran JFrog
Jenkins user plugin This time it's Shiran Rubin @ShiranRU JFrog http://jfrog.com July 16, 2014 About me Groovy developer in JFrog. The home of We work with: But support many others. It's time to There's
More informationS AMPLE CHAPTER IN ACTION. Benjamin Muschko. FOREWORD BY Hans Dockter MANNING
S AMPLE CHAPTER IN ACTION Benjamin Muschko FOREWORD BY Hans Dockter MANNING Gradle in Action by Benjamin Muschko Chapter 9 Copyright 2014 Manning Publications brief contents PART 1 INTRODUCING GRADLE...1
More informationMAVEN MOCK TEST MAVEN MOCK TEST III
http://www.tutorialspoint.com MAVEN MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Maven. You can download these sample mock tests at your local machine
More informationsites</distribsiteroot>
Maven Parent POMs What is this? We have several parent poms. They pre-configure a whole array of things, from plugin versions to deployment on our infrastructure. They should be used: By all public and
More informationHP Operations Orchestration
HP Operations Orchestration For Windows and Linux HP OO Software Version 10.01 Extension Developers Guide Document Release Date: August 2013 Software Release Date: August 2013 Legal Notices Warranty The
More information... Maven.... The Apache Maven Project
.. Maven.. The Apache Maven Project T a b l e o f C o n t e n t s i Table of Contents.. 1 Welcome..................................................................... 1 2 Eclipse.......................................................................
More informationApache Buildr in Action
Apache Buildr in Action A short intro BED 2012 Dr. Halil-Cem Gürsoy, adesso AG 29.03.12 About me Round about 12 Years in the IT, Development and Consulting Before that development in research (RNA secondary
More informationAnt. Originally ANT = Another Neat Tool. Created by James Duncan Davidson Now an Apache open-source project
Ant Originally ANT = Another Neat Tool Created by James Duncan Davidson Now an Apache open-source project Ants are amazing insects Can carry 50 times their own weight Find the shortest distance around
More informationB O NU S C H A P T E R
BONUS CHAPTER Wicket in Action by Martijn Dashorst and Eelco Hillenius Bonus Chapter 15 Copyright 2008 Manning Publications Setting up a Wicket project In this chapter: Creating the standard web application
More informationLab 5 Exercise Build and continuous integration tools
Lund University Computer Science Mattias Nordahl Software development in teams EDAF45 2017 12 06 Lab 5 Exercise Build and continuous integration tools 1 Introduction This lab will give you some experience
More informationSoftware Development. COMP220/COMP285 Seb Coope Ant: Structured Build
Software Development COMP220/COMP285 Seb Coope Ant: Structured Build These slides are mainly based on Java Development with Ant - E. Hatcher & S.Loughran. Manning Publications, 2003 Imposing Structure
More informationJava 9 Module System. Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK
Java 9 Module System Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK Problem of Complexity and Programming Language 2 von 41 Early/Modern
More informationChapter 1: First steps with JAX-WS Web Services
Chapter 1: First steps with JAX-WS Web Services This chapter discusses about what JAX-WS is and how to get started with developing services using it. The focus of the book will mainly be on JBossWS a Web
More informationEnter the Gradle Hans Dockter CEO, Gradleware Founder Gradle
Enter the Gradle Hans Dockter CEO, Gradleware Founder Gradle hans.dockter@gradleware.com What you will learn Declarativeness Extensibility Performance Features Build Integration Build Migration Testing
More informationCheat Sheet: Wildfly Swarm
Cheat Sheet: Wildfly Swarm Table of Contents 1. Introduction 1 5.A Java System Properties 5 2. Three ways to Create a 5.B Command Line 6 Swarm Application 1 5.C Project Stages 6 2.A Developing a Swarm
More informationMaven 2 & Continuum. by Trygve Laugstøl
Maven 2 & Continuum by Trygve Laugstøl Agenda About Maven Maven 2 Highlights Changes The POM Project layout Plugin architecture Continuum About Maven It s a different kind of build
More informationSCA Java Runtime Overview
SCA Java Runtime Overview Software Organization Source Code Locations If you take a Tuscany SCA Java source distribution or look in the Tuscany subversion repository (http://svn.apache.org/repos/asf/tuscany/java/sc
More informationMANUAL DO ALUNO DE ENGENHARIA DE SOFTWARE
MANUAL DO ALUNO DE ENGENHARIA DE SOFTWARE [Document Subtitle] João Dias Pereira Instituto Superior Técnico ES 2014/15 [ 1 / 50 ] Introduction This document presents the several tools and technologies that
More informationKevin Lee IBM Rational Software SCM23
Accelerating and Automating the Build Process with IBM Rational ClearCase and Ant Kevin Lee IBM Rational Software kevin.lee@uk.ibm.com Agenda Overview of Ant What is Ant The Ant build file Typical Ant
More informationUnable To The Artifact From Any Repository Maven-clean-plugin
Unable To The Artifact From Any Repository Maven-clean-plugin The default behaviour of the plugin is to first resolve the entire dependency tree, Any manually included purge artifacts will be removed from
More informationMIGRATION GUIDE DIGITAL EXPERIENCE MANAGER 7.2
1 SUMMARY 1 INTRODUCTION... 4 2 HOW TO UPGRADE FROM DIGITAL EXPERIENCE MANAGER 7.1 TO 7.2... 5 2.1 Code base review and potential impacts... 5 2.2 Deployment scripts/procedure review... 5 2.3 Test environment
More informationFROM NOTHING TO COMPLETE ENVIRONMENT WITH MAVEN, OOMPH & DOCKER. Max Bureck, 21. June 2017
WITH MAVEN, OOMPH & DOCKER Max Bureck, 21. June 2017 1. Disclaimer 2. Motivation 3. Demo 4. Recap, Conclusion, and Future Possibilities 2 http://memegenerator.net/instance/78175637 3 FROM (ALMOST) NOTHING
More informationOracle Code Day Hands On Labs (HOL) (Install, Repository, Local Deploy, DevCS, OACCS)
Oracle Code Day Hands On Labs (HOL) (Install, Repository, Local Deploy, DevCS, OACCS) Table of Contents Getting Started...2 Overview...2 Learning Objectives...2 Prerequisites...2 Software for HOL Lab Session...2
More informationCreating Custom Builder Components
3 Creating Custom Builder Components Date of Publish: 2018-12-18 https://docs.hortonworks.com/ Contents...3 Adding Custom Processors...3 Creating Custom Processors...3 Registering Custom Processors with
More information