Ant is a Java-based build tool that allows developers to compile, test, and package Java applications. It provides a way to automate build processes through XML build files. Ant files work cross-platform and allow tasks to be declared in a platform-independent way. Common tasks include compiling Java code, creating JAR files, copying files, and more. Ant is widely used for Java projects due to its flexibility and cross-platform capabilities.
This was a talk given at Django District in March, 2016. It goes over the general gist of how to integrate Django Rest Framework with React and Redux. It also includes a github repo with working code, including using Webpack for Hot Reloading and Redux Dev Tools for time traveling state.
This was a talk given at Django District in March, 2016. It goes over the general gist of how to integrate Django Rest Framework with React and Redux. It also includes a github repo with working code, including using Webpack for Hot Reloading and Redux Dev Tools for time traveling state.
Welcome to presentation on Spring boot which is really great and relatively a new project from Spring.io. Its aim is to simplify creating new spring framework based projects and unify their configurations by applying some conventions. This convention over configuration is already successfully applied in so called modern web based frameworks like Grails, Django, Play framework, Rails etc.
Take a look at what Rails 5 has in store for you. We go through all the new features and improvements across development, testing, caching and much more. So let's dive in.
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 MinutesNina Zakharenko
An introduction to the Django REST Framework, given at Djangocon US 2014.
The video for the talk is available here: https://www.youtube.com/watch?v=cqP758k1BaQ
[Srijan Wednesday Webinars] Ruling Drupal 8 with #d8rulesSrijan Technologies
Speaker: Josef Dabernig a.k.a Dasjo
This webinar takes a look at how to automate some powerful backend capabilities for your Drupal site, using the Drupal 8 Rules. Take a look at how D8 Rules can change the way we build sites. Also, learn how you can contribute to getting Rules closer to a stable release.
Gradle is the build system you have been waiting for or maybe the build system that has been waiting for you. The adoption rate is incredible from being the new Google Android development tools build system to most new Java opensource projects to JavaScript based front-end and back-end projects.
Bring your Spring knowledge up-to-date by attending this workshop.
Instead of diving into functionality which was already there in older Spring versions, we will focus on the new Spring 4 features. We will however point out small API differences.
The structure of the Workshop will be as follows:
1. Java SE & Java EE support
2. Spring Core
3. Spring WebMVC
4. WebSockets & Messaging
5. Testing Improvements
Understanding configuration in Drupal 8 is essential. It's a powerful tool that can streamline your development and deployment processes. After several rescue projects over the past year I have realised that the one thing that goes wrong first is the configuration. For some reason it's always left until last or even as an afterthought and this can really de-rail projects.
In this session I will cover.
How to get your configuration in and out of Drupal.
How to best manage your configuration.
Using configuration modules like Configuration Ignore and Configuration Split to manage your configuration across different platforms.
What to do when the client changes the configuration on your site and some other common problems that you might encounter.
Note: This presentation contained some videos that I couldn't translate into slideshare.
Slides accompanying a presentation on Dropwizard I gave at the DevIgnition conference ( www.devignition.com ) on April 29, 2016. The sample code is on GitHub at https://github.com/sleberknight/dropwizard-devignition-2016
Introducing Assetic: Asset Management for PHP 5.3Kris Wallsmith
The performance of your application depends heavily on the number and size of assets on each page. Even your blazingly fastest Symfony2 application can be bogged down by bloated Javascript and CSS files. This session will give you a basic introduction to PHP's new asset management framework, Assetic, and explore how it integrates with Symfony2 for a pleasant, common sense developer experience.
A general- ‐purpose build automation tool. It can automate building, testing, deployment, publishing, generate documentation etc.
Designed to take advantage of convention over configuration.
Combines the power and flexibility of Ant with the dependency management and
conventions of Maven into a more effective way to build.
Http4s, Doobie and Circe: The Functional Web StackGaryCoady
Http4s, Doobie and Circe together form a nice platform for building web services. This presentations provides an introduction to using them to build your own service.
Welcome to presentation on Spring boot which is really great and relatively a new project from Spring.io. Its aim is to simplify creating new spring framework based projects and unify their configurations by applying some conventions. This convention over configuration is already successfully applied in so called modern web based frameworks like Grails, Django, Play framework, Rails etc.
Take a look at what Rails 5 has in store for you. We go through all the new features and improvements across development, testing, caching and much more. So let's dive in.
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 MinutesNina Zakharenko
An introduction to the Django REST Framework, given at Djangocon US 2014.
The video for the talk is available here: https://www.youtube.com/watch?v=cqP758k1BaQ
[Srijan Wednesday Webinars] Ruling Drupal 8 with #d8rulesSrijan Technologies
Speaker: Josef Dabernig a.k.a Dasjo
This webinar takes a look at how to automate some powerful backend capabilities for your Drupal site, using the Drupal 8 Rules. Take a look at how D8 Rules can change the way we build sites. Also, learn how you can contribute to getting Rules closer to a stable release.
Gradle is the build system you have been waiting for or maybe the build system that has been waiting for you. The adoption rate is incredible from being the new Google Android development tools build system to most new Java opensource projects to JavaScript based front-end and back-end projects.
Bring your Spring knowledge up-to-date by attending this workshop.
Instead of diving into functionality which was already there in older Spring versions, we will focus on the new Spring 4 features. We will however point out small API differences.
The structure of the Workshop will be as follows:
1. Java SE & Java EE support
2. Spring Core
3. Spring WebMVC
4. WebSockets & Messaging
5. Testing Improvements
Understanding configuration in Drupal 8 is essential. It's a powerful tool that can streamline your development and deployment processes. After several rescue projects over the past year I have realised that the one thing that goes wrong first is the configuration. For some reason it's always left until last or even as an afterthought and this can really de-rail projects.
In this session I will cover.
How to get your configuration in and out of Drupal.
How to best manage your configuration.
Using configuration modules like Configuration Ignore and Configuration Split to manage your configuration across different platforms.
What to do when the client changes the configuration on your site and some other common problems that you might encounter.
Note: This presentation contained some videos that I couldn't translate into slideshare.
Slides accompanying a presentation on Dropwizard I gave at the DevIgnition conference ( www.devignition.com ) on April 29, 2016. The sample code is on GitHub at https://github.com/sleberknight/dropwizard-devignition-2016
Introducing Assetic: Asset Management for PHP 5.3Kris Wallsmith
The performance of your application depends heavily on the number and size of assets on each page. Even your blazingly fastest Symfony2 application can be bogged down by bloated Javascript and CSS files. This session will give you a basic introduction to PHP's new asset management framework, Assetic, and explore how it integrates with Symfony2 for a pleasant, common sense developer experience.
A general- ‐purpose build automation tool. It can automate building, testing, deployment, publishing, generate documentation etc.
Designed to take advantage of convention over configuration.
Combines the power and flexibility of Ant with the dependency management and
conventions of Maven into a more effective way to build.
Http4s, Doobie and Circe: The Functional Web StackGaryCoady
Http4s, Doobie and Circe together form a nice platform for building web services. This presentations provides an introduction to using them to build your own service.
Are you using svn:externals, git-submodules or something similar with your Version Control System of choice for connecting third-party libraries to your PHP projects? This presentation explores ways to handle dependencies in PHP projects, just like projects in other programming languages have done for ages.
See http://ikoodi.nl/2011/01/25/version-control-dependency-management/ for full article.
Ant is a Java library and command-line tool. Ant's mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks.
Ant is written in Java. Users of Ant can develop their own "antlibs" containing Ant tasks and types, and are offered a large number of ready-made commercial or open-source "antlibs".
Ant is extremely flexible and does not impose coding conventions or directory layouts to the Java projects which adopt it as a build tool.
Software development projects looking for a solution combining build tool and dependency management can use Ant in combination with Ivy.
What is svn?
how svn works ?
diagram of SVN ?
Merging with SVN ?
Conflict With SVN ?
Checkout and Checkin ,update ,branch , tags ?
what is version control "?
SVN file directory ?
Directories locked in Tags ?
Highly efficient container orchestration and continuous delivery with DC/OS a...Christian Bogeberg
Continuous delivery is all the rage these days, but without self-healing, highly available, and fault-tolerant infrastructure to deploy your applications to, it’s really only one piece of a much larger picture. Apache Mesos was born at UC Berkeley and grew into a robust, highly scalable cluster orchestrator while running thousands of nodes at Twitter. Support for Docker containers was added in 2013, and since then, it’s been adopted by companies like Netflix and Apple to run their critical infrastructure. Mesosphere has built the open source Datacenter Operating System (DC/OS) around Apache Mesos to provide all the supplementary tooling necessary to take Mesos to a production environment. Jenkins with DC/OS allows you to spin up build agents dynamically, an approach which has allowed companies like PayPal to cut the footprint of their build farms by hundreds of nodes, saving money on infrastructure by increasing utilization and reducing obstacles to providing teams with the resources they need when they need them.
Sunil Shah and Roger Ignazio introduce DC/OS and demonstrate how to integrate it with the stalwart continuous integration server Jenkins, allowing you to set up a continuous delivery pipeline that takes an application composed of microservices from code repository to Docker Hub to a staging or production server with seamless automation. Sunil and Roger walk attendees through setting up their own pipeline using Jenkins on a DC/OS cluster, from installation and configuration of Jenkins to setting up a build to actually deploying it to a live environment where it can serve traffic, and also cover the internals of practical microservice architecture, including component-level deployment, application-level persistence, and intraprocess communication via service discovery.
Custom deployments with sbt-native-packagerGaryCoady
sbt-native-packager offers a comprehensive approach to packaging artifacts with SBT. The user describes a generic layout, which can then be extended for different types of software and deployments. For example, it is flexible enough to describe both a Zip-based archive format, and an RPM package with appropriate Systemd configuration for a service.
This talk will cover the essentials needed to understand the design of sbt-native-packager, and how to extend its structure to create custom layouts and deployments.
As a PHP developer building web applications is besides making a living a lot of fun too, especially when you can deploy your apps to any kind of environment and on any platform. In this session I take a non-standard PHP application (based on Zend Framework) and deploy it to a bare metal environment running LAMP, Windows 2008 Server with IIS7 and to cloud instances like Azure and Amazon.
The goal is to provide information on how to deploy to these various environments manual and automatic, but also to show it doesn't really matter anymore what the targeted platform is, as long the apps are written in PHP.
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
HA websites are where the rubber meets the road - at 200km/h. Traditional separation of dev and ops just doesn't cut it.
Everything is related to everything. Code relies on performant and resilient infrastructure, but highly performant infrastructure will only get a poorly written application so far. Worse still, root cause analysis in HA sites will more often than not identify problems that don't clearly belong to either devs or ops.
The two options are collaborate or die.
This talk will introduce 3 core principles for improving collaboration between operations and development teams: consistency, repeatability, and visibility. These principles will be investigated with real world case studies and associated technologies audience members can start using now. In particular, there will be a focus on:
- fast provisioning of test environments with configuration management
- reliable and repeatable automated deployments
- application and infrastructure visibility with statistics collection, logging, and visualisation
Ant is a Java library and command-line tool. Ant's mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks.
Ant is written in Java. Users of Ant can develop their own "antlibs" containing Ant tasks and types, and are offered a large number of ready-made commercial or open-source "antlibs".
Ant is extremely flexible and does not impose coding conventions or directory layouts to the Java projects which adopt it as a build tool.
Software development projects looking for a solution combining build tool and dependency management can use Ant in combination with Ivy.
This talk will give you tips and tricks to get better build time performance and smaller images. The most important take-away is: you should be using multi-stage Dockerfiles and enable BuildKit.
Once you're done coding, the project is all but finished. There are lots of tools to keep control over your code outside your IDE. Especially continuous integration tools are really helpfull for this purpose. Under the hood of a CI, or at commandline, Phing can be used for lots of PHP specific tasks that are usually executed within a CI. Phing is a sort of PHP version of the Apache Ant tool, which is neatly integrated with some handy PEAR packages. During this presentation you'll get a basic understanding about Phing and its features. We will walk through some examples and screens, so you get some basic knowledge about phing and in what type of fields it can be really usefull.
Given at TechMaine's Java Users Group on Feb 26 2008
Why do we need another build tool when we already have Ant? By focusing on convention over configuration, Maven allows you to declaratively define how your project is built, which reduces a lot of the procedural code that you'd need to implement in every build file if you were using Ant. This, along with Maven's built-in management of repositories for project dependencies, allows you to streamline your build process. Ultimately Maven can reduce the amount of time that would otherwise be wasted hunting down jar files and fiddling with boilerplate build scripts.
This presentation covers Maven's core concepts. It introduces the Plugin architecture, and explain how the most popular plugins are used. It also covers the POM concept and how it relates to dependency tracking and repositories.
These are the slides from a presentation I gave in 1999 at the Seattle Area System Administrators Guild monthly meeting. I haven't done this in a while, so I can't say how much of this is no longer valid, but it may prove useful to someone as a reference.
Slides from DevOps Pro, Vilnius, Lithuania.
Abstract: The wide adoption of configuration management and the increasing size and complexity of the associated code, prompt for assessing, maintaining, and improving the configuration code’s quality. We can leverage traditional software engineering knowledge and best practices to develop and maintain high quality configuration code. This talk brings the smell metaphor to configuration domain. This talk introduces configuration smells, their types with various examples, tools to detect them, and suggestions to refactor them.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
2. What is Ant?What is Ant?
Java-based Build tool from ApacheJava-based Build tool from Apache
De facto standard for building, packaging, andDe facto standard for building, packaging, and
installing Java applicationsinstalling Java applications
Accomplishes same objectives thatAccomplishes same objectives that makemake does ondoes on
Unix based systemsUnix based systems
Files are written in XMLFiles are written in XML
3. Why Ant?Why Ant?
Unlike makefiles, Ant files work cross platformUnlike makefiles, Ant files work cross platform
- No need for multiple, complex makefiles- No need for multiple, complex makefiles
depending on the operating system.depending on the operating system.
- Tasks declared in platform independent way;- Tasks declared in platform independent way;
Ant engine translates to OS specific commands.Ant engine translates to OS specific commands.
Easy to create own Ant “tasks”, in addition toEasy to create own Ant “tasks”, in addition to
core taskscore tasks
4. Installing AntInstalling Ant
Download Ant binary distribution from:Download Ant binary distribution from:
http://ant.apache.org/bindownload.cgihttp://ant.apache.org/bindownload.cgi
Set ANT_HOME to where you installed AntSet ANT_HOME to where you installed Ant
Include $ANT_HOME/bin in PATHInclude $ANT_HOME/bin in PATH
Make sure JAVA_HOME is set to point to JDKMake sure JAVA_HOME is set to point to JDK
5. Running AntRunning Ant
TypeType “ant”“ant” at the command lineat the command line
Automatically looks for build.xml file in currentAutomatically looks for build.xml file in current
directory to rundirectory to run
TypeType “ant –buildfile“ant –buildfile buildfile.xmlbuildfile.xml”” to specifyto specify
another build file to run.another build file to run.
8. Ant Overview: ProjectAnt Overview: Project
Each build file contains exactly one project andEach build file contains exactly one project and
at least one targetat least one target
Project tags specify the basic project attributesProject tags specify the basic project attributes
and have 3 properties:and have 3 properties:
- name- name
- default target- default target
- basedir- basedir
Example: <project name=“MyProject” default=“build” basedir=“.”>Example: <project name=“MyProject” default=“build” basedir=“.”>
9. Ant Overview: TargetsAnt Overview: Targets
Target is a build module in AntTarget is a build module in Ant
Each target contains task(s) for Ant to doEach target contains task(s) for Ant to do
One must be a project defaultOne must be a project default
Overall structure of targets:Overall structure of targets:
<target name="A"/><target name="A"/>
<target name="B" depends="A"/><target name="B" depends="A"/>
<target name="C" depends="B"/><target name="C" depends="B"/>
<target name="D" depends="C,B,A"/><target name="D" depends="C,B,A"/>
10. Ant Overview: TasksAnt Overview: Tasks
Each target comprises one or more tasksEach target comprises one or more tasks
Task is a piece of executable Java code (e.g.Task is a piece of executable Java code (e.g.
javac, jar, etc)javac, jar, etc)
Tasks do the actual “build” work in AntTasks do the actual “build” work in Ant
Ant has core (built in) tasks and the ability toAnt has core (built in) tasks and the ability to
create own taskscreate own tasks
12. Ant Overview: Core TasksAnt Overview: Core Tasks
javac – Runs the Java Compilerjavac – Runs the Java Compiler
java – Runs the Java Virtual Machinejava – Runs the Java Virtual Machine
jar (and war) – Create JAR filesjar (and war) – Create JAR files
mkdir – Makes a directorymkdir – Makes a directory
copy – Copies files to specified locationcopy – Copies files to specified location
delete – Deletes specified filesdelete – Deletes specified files
cvs – Invokes CVS commands from Antcvs – Invokes CVS commands from Ant
13. Ant Overview: Writing Own TaskAnt Overview: Writing Own Task
Create a Java class that extendsCreate a Java class that extends org.apache.tools.ant.Taskorg.apache.tools.ant.Task
For each attribute, write a setter method that isFor each attribute, write a setter method that is
public voidpublic void and takes a single argumentand takes a single argument
Write aWrite a public void execute()public void execute() method, with nomethod, with no
arguments, that throws a BuildException -- thisarguments, that throws a BuildException -- this
method implements the task itselfmethod implements the task itself
14. Ant Overview: PropertiesAnt Overview: Properties
Special task for setting up build file properties:Special task for setting up build file properties:
Example:Example:
<property name=“src” value=“/home/src”/><property name=“src” value=“/home/src”/>
Can use ${src} anywhere in build file toCan use ${src} anywhere in build file to
denote /home/srcdenote /home/src
Ant provides access to all system properties as ifAnt provides access to all system properties as if
defined by thedefined by the <property><property> tasktask
15. Ant Overview: Path StructuresAnt Overview: Path Structures
Ant provides means to set various environmentAnt provides means to set various environment
variables like PATH and CLASSPATH.variables like PATH and CLASSPATH.
Example of setting CLASSPATH:Example of setting CLASSPATH:
<classpath><classpath>
<pathelement path="${classpath}"/><pathelement path="${classpath}"/>
<pathelement location="lib/helper.jar"/><pathelement location="lib/helper.jar"/>
</classpath></classpath>
16. Command Line ArgumentsCommand Line Arguments
-buildfile-buildfile buildfilebuildfile – specify build file to use– specify build file to use
targetnametargetname – specify target to run (instead of– specify target to run (instead of
running default)running default)
-verbose, -quiet, -debug-verbose, -quiet, -debug – Allows control– Allows control
over the logging information Ant outputsover the logging information Ant outputs
--loggerlogger classnameclassname – Allows user to specify– Allows user to specify
their own classes for logging Ant eventstheir own classes for logging Ant events
17. IDE IntegrationIDE Integration
Eclipse, NetBeans, JBuilder, VisualAge, andEclipse, NetBeans, JBuilder, VisualAge, and
almost any other Java IDE has Ant integrationalmost any other Java IDE has Ant integration
built-in to the systembuilt-in to the system
Refer to each IDE’s documentation for how toRefer to each IDE’s documentation for how to
use Ant with that IDEuse Ant with that IDE
18. Web Development with AntWeb Development with Ant
Tomcat comes with special Ant tasks to easeTomcat comes with special Ant tasks to ease
Web application development and deploymentWeb application development and deployment
CopyCopy $TOMCAT_HOME/server/lib/catalina-ant.jar$TOMCAT_HOME/server/lib/catalina-ant.jar toto
$ANT_HOME/lib$ANT_HOME/lib
Ant tasks for Tomcat:Ant tasks for Tomcat:
- install- install
- reload- reload
- deploy- deploy
- remove- remove