全民耍猴

全民耍猴时代已经来临,一不小心你的时间和金钱就被偷走;

今天抢了一个口碑的赛百味优惠券,然后下午茶时间过去的时候却被告知不可以使用,浪费我的时间和精力,还要重新退款。以后只有别人验证过,说值得的东西才可以参与尝试,不然只会浪费自己的时间和精力。

Maven Opensource Book PDF

http://cdn2.hubspot.net/hubfs/1958393/eBooks/Maven_the_reference_guide.pdf?__hssc=31049440.2.1511937684662&__hstc=31049440.7325deecded535889d973bc9b28cba8f.1511937684661.1511937684661.1511937684661.1&__hsfp=363851880&hsCtaTracking=ae9a5964-1b87-4ba3-928b-d692e2b19421%7Cce6355b9-53ce-46f8-934d-9b75e3319429

https://www.sonatype.com/hubfs/nxbook_Sept_2017.pdf?hsCtaTracking=c7fd0fc8-52fc-452c-8454-0931ff795e45%7C5ea42992-2a7c-4743-9f92-c1d53fe699f8

 

http://cdn2.hubspot.net/hubfs/1958393/eBooks/Maven_By_Example_-_eBook.pdf?__hssc=31049440.2.1511937684662&__hstc=31049440.7325deecded535889d973bc9b28cba8f.1511937684661.1511937684661.1511937684661.1&hsCtaTracking=05a54e87-335a-42a8-b568-b6058192f1a2%7C9d7c0499-fe74-4f44-ba73-b9565e55cc61

 

 

You could refer below catalog :

Maven: The Complete Reference
|– 1 Introducing Apache Maven 1
|– 1.1 Maven. . . What is it?
|– 1.2 Convention Over Configuration
|– 1.3 A Common Interface
|– 1.4 Universal Reuse through Maven Plugins
|– 1.5 Conceptual Model of a “Project”
|– 1.6 Is Maven an alternative to XYZ?
|– 1.7 Comparing Maven with Ant
|– 2 Installing Maven 10
|– 2.1 Verify your Java Installation
|– 2.2 Downloading Maven
|– 2.3 Installing Mavens
|– 2.3.1 Installing Maven on Linux, BSD or Mac OSX
|– 2.3.2 Installing Maven on Microsoft Windows
|– 2.4 Testing a Maven Installation
|– 2.5 Maven Installation Details
|– 2.5.1 User-specific Configuration and Repository
|– 2.5.2 Upgrading a Maven Installation
|– 2.6 Uninstalling Maven
|– 2.7 Getting Help with Maven
|– 2.8 About the Apache Software License
3 The Project Object Model 18
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 The POM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 The Super POM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.2 The Simplest POM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.3 The Effective POM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.4 Real POMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3 POM Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Project Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Maven: The Complete Reference iv
3.3.1.1 Version Build Numbers . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.1.2 SNAPSHOT Versions . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2 Property References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Project Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.1 Dependency Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4.2 Optional Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.3 Dependency Version Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4.4 Transitive Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4.4.1 Transitive Dependencies and Scope . . . . . . . . . . . . . . . . . . . 35
3.4.5 Conflict Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5 Project Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.1 More on Coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.2 Project Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6 POM Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.6.1 Grouping Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6.2 Multi-module vs. Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.2.1 Simple Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.2.2 Multi-module Enterprise Project . . . . . . . . . . . . . . . . . . . . 49
Maven: The Complete Reference v
4 The Build Lifecycle 52
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.1.1 Clean Lifecycle (clean) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.1.2 Default Lifecycle (default) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1.3 Site Lifecycle (site) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Package-specific Lifecycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.1 JAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.2 POM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.3 Maven Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.4 EJB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.5 WAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2.6 EAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2.7 Other Packaging Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3 Common Lifecycle Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.1 Process Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.2 Compile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3.3 Process Test Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.4 Test Compile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Maven: The Complete Reference vi
4.3.5 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3.6 Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.3.7 Deploy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5 Build Profiles 71
5.1 What Are They For? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.1.1 What is Build Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.1.1.1 Non-Portable Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.1.1.2 Environment Portability . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.1.1.3 Organizational (In-House) Portability . . . . . . . . . . . . . . . . . . 72
5.1.1.4 Wide (Universal) Portability . . . . . . . . . . . . . . . . . . . . . . . 73
5.1.2 Selecting an Appropriate Level of Portability . . . . . . . . . . . . . . . . . . . 73
5.2 Portability through Maven Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.1 Overriding a Project Object Model . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3 Profile Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.1 Activation Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3.2 Activation by the Absence of a Property . . . . . . . . . . . . . . . . . . . . . . 80
5.4 Listing Active Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.5 Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Maven: The Complete Reference vii
5.5.1 Common Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.5.2 Protecting Secrets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.5.3 Platform Classifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6 Running Maven 88
6.1 Maven Command Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.1.1 Defining Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.1.2 Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.1.3 Using Build Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.1.4 Displaying Version Information . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.1.5 Running in Offline Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.1.6 Using a Custom POM or Custom Settings File . . . . . . . . . . . . . . . . . . 91
6.1.7 Encrypting Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.1.8 Dealing with Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.1.9 Controlling Maven’s Verbosity . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.1.10 Running Maven in Batch Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.1.11 Downloading and Verifying Dependencies . . . . . . . . . . . . . . . . . . . . . 93
6.1.12 Non-recursive Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Maven: The Complete Reference viii
6.2 Using Advanced Reactor Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.2.1 Advanced Reactor Options Example Project . . . . . . . . . . . . . . . . . . . . 95
6.2.2 Resuming Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.2.3 Specifying a Subset of Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.2.4 Making a Subset of Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2.5 Making Project Dependents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2.6 Resuming a “make” build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.3 Using the Maven Help Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.3.1 Describing a Maven Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7 Maven Configuration 103
7.1 Configuring Maven Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.1.1 Plugin Configuration Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.1.2 Adding Plugin Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.1.3 Setting Global Plugin Parameters . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.1.4 Setting Execution Specific Parameters . . . . . . . . . . . . . . . . . . . . . . . 108
7.1.5 Setting Default Command Line Execution Parameters . . . . . . . . . . . . . . 109
7.1.6 Setting Parameters for Goals Bound to Default Lifecycle . . . . . . . . . . . . . 110
8 Maven Assemblies 112
Maven: The Complete Reference ix
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
8.2 Assembly Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.2.1 Predefined Assembly Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.2.2 Building an Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.2.3 Assemblies as Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.2.4 Assembling Assemblies via Assembly Dependencies . . . . . . . . . . . . . . . 118
8.3 Overview of the Assembly Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.4 The Assembly Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.4.1 Property References in Assembly Descriptors . . . . . . . . . . . . . . . . . . . 123
8.4.2 Required Assembly Information . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.5 Controlling the Contents of an Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5.1 Files Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5.2 FileSets Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.5.3 Default Exclusion Patterns for . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.5.4 dependencySets Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.4.1 Customizing Dependency Output Location . . . . . . . . . . . . . . . 131
8.5.4.2 Interpolation of Properties in Dependency Output . . . . . . . . . . . 132
8.5.4.3 Including and Excluding Dependencies by Scope . . . . . . . . . . . 133
Maven: The Complete Reference x
8.5.4.4 Fine Tuning: Dependency Includes and Excludes . . . . . . . . . . . 135
8.5.4.5 Transitive Dependencies, Project Attachments, and Project . . . . . . 137
8.5.4.6 Advanced Unpacking Options . . . . . . . . . . . . . . . . . . . . . . 138
8.5.4.7 Summarizing Dependency Sets . . . . . . . . . . . . . . . . . . . . . 140
8.5.5 moduleSets Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.5.5.1 Module Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.5.5.2 Sources Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.5.5.3 Interpolation of outputDirectoryMapping in . . . . . . . . . . 143
8.5.5.4 Binaries section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
8.5.5.5 moduleSets, Parent POMs . . . . . . . . . . . . . . . . . . . . . . 146
8.5.6 Repositories Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.5.7 Managing the Assembly’s Root Directory . . . . . . . . . . . . . . . . . . . . . 147
8.5.8 componentDescriptors and . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.6 Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.6.1 Standard, Reusable Assembly Descriptors . . . . . . . . . . . . . . . . . . . . . 149
8.6.2 Distribution (Aggregating) Assemblies . . . . . . . . . . . . . . . . . . . . . . 152
8.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9 Properties and Resource Filtering 158
Maven: The Complete Reference xi
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.2 Maven Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
9.2.1 Maven Project Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
9.2.2 Maven Settings Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.2.3 Environment Variable Properties . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.2.4 Java System Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.2.5 User-defined Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
9.3 Resource Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
10 Site Generation 168
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
10.2 Building a Project Site with Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
10.3 Customizing the Site Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
10.3.1 Customizing the Header Graphics . . . . . . . . . . . . . . . . . . . . . . . . . 173
10.3.2 Customizing the Navigation Menu . . . . . . . . . . . . . . . . . . . . . . . . . 173
10.4 Site Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.5 Writing Project Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
10.5.1 APT Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
10.5.2 FML Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Maven: The Complete Reference xii
10.6 Deploying Your Project Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
10.6.1 Configuring Server Authentication . . . . . . . . . . . . . . . . . . . . . . . . . 179
10.6.2 Configuring File and Directory Modes . . . . . . . . . . . . . . . . . . . . . . . 179
10.7 Customizing Site Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
10.7.1 Customizing the Site CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
10.7.2 Create a Custom Site Template . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
10.7.3 Reusable Website Skins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
10.7.4 Creating a Custom Theme CSS . . . . . . . . . . . . . . . . . . . . . . . . . . 187
10.8 Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
10.8.1 Inject XHTML into HEAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
10.8.2 Add Links under Your Site Logo . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10.8.3 Add Breadcrumbs to Your Site . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10.8.4 Add the Project Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.8.5 Modify the Publication Date Format and Location . . . . . . . . . . . . . . . . 192
10.8.6 Using Doxia Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
11 Writing Plugins 195
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
11.2 Programming Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Maven: The Complete Reference xiii
11.2.1 What is Inversion of Control? . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
11.2.2 Introduction to Plexus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
11.2.3 Why Plexus? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
11.2.4 What is a Plugin? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
11.3 Plugin Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
11.3.1 Top-level Plugin Descriptor Elements . . . . . . . . . . . . . . . . . . . . . . . 201
11.3.2 Mojo Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
11.3.3 Plugin Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
11.4 Writing a Custom Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
11.4.1 Creating a Plugin Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
11.4.2 A Simple Java Mojo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
11.4.3 Configuring a Plugin Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
11.4.4 Logging from a Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
11.4.5 Mojo Class Annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
11.4.6 When a Mojo Fails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
11.5 Mojo Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
11.5.1 Supplying Values for Mojo Parameters . . . . . . . . . . . . . . . . . . . . . . 214
11.5.2 Multi-valued Mojo Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Maven: The Complete Reference xiv
11.5.3 Depending on Plexus Components . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.5.4 Mojo Parameter Annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.6 Plugins and the Maven Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.6.1 Executing a Parallel Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.6.2 Creating a Custom Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
11.6.3 Overriding the Default Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . 223
12 Using Maven Archetypes 225
12.1 Introduction to Maven Archetypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
12.2 Using Archetypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
12.2.1 Using an Archetype from the Command Line . . . . . . . . . . . . . . . . . . . 226
12.2.2 Using the Interactive generate Goal . . . . . . . . . . . . . . . . . . . . . . . . 227
12.2.3 Using an Archetype from m2eclipse . . . . . . . . . . . . . . . . . . . . . . . . 229
12.3 Available Archetypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
12.3.1 Common Maven Archetypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
12.3.1.1 maven-archetype-quickstart . . . . . . . . . . . . . . . . . . . . . . . 230
12.3.1.2 maven-archetype-webapp . . . . . . . . . . . . . . . . . . . . . . . . 230
12.3.1.3 maven-archetype-mojo . . . . . . . . . . . . . . . . . . . . . . . . . 230
12.3.2 Notable Third-Party Archetypes . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Maven: The Complete Reference xv
12.3.2.1 AppFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
12.3.2.2 Confluence and JIRA plugins . . . . . . . . . . . . . . . . . . . . . . 232
12.3.2.3 Wicket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
12.4 Publishing Archetypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
13 Developing with Flexmojos 237
13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
13.2 Configuring Build Environment for Flexmojos . . . . . . . . . . . . . . . . . . . . . . . 237
13.2.1 Referencing a Repository with the Flex Framework . . . . . . . . . . . . . . . . 238
13.2.1.1 Referencing Sonatype’s Flexmojos Repository in a POM . . . . . . . 238
13.2.1.2 Proxying Sonatype’s Flexmojos Repository with Nexus . . . . . . . . 239
13.2.2 Configure a Flexmojos Proxy Repository in Nexus . . . . . . . . . . . . . . . . 239
13.2.2.1 Add the Flexmojos Proxy Repository to a Group . . . . . . . . . . . . 242
13.2.2.2 Configure Your Development Environment for Nexus . . . . . . . . . 244
13.2.3 Configuring Environment to Support Flex Unit Tests . . . . . . . . . . . . . . . 245
13.2.4 Adding FlexMojos to Your Maven Settings’ Plugin Groups . . . . . . . . . . . . 246
13.3 Creating a Flex Mojos Project from an Archetype . . . . . . . . . . . . . . . . . . . . . 247
13.3.1 Creating a Flex Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
13.3.2 Creating a Flex Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Maven: The Complete Reference xvi
13.3.3 Creating a Multi-module Project: Web Application with a Flex . . . . . . . . . . 258
13.4 The FlexMojos Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
13.4.1 The SWC Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
13.4.2 The SWF Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
13.5 FlexMojos Plugin Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
13.5.1 Generating Actionscript Documentation . . . . . . . . . . . . . . . . . . . . . . 272
13.5.2 Compiling Flex Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
13.5.3 Generating Flex Builder Project Files . . . . . . . . . . . . . . . . . . . . . . . 273
13.6 FlexMojos Plugin Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
13.6.1 Generating Actionscript Documentation Report . . . . . . . . . . . . . . . . . . 274
13.7 Developing and Customizing Flexmojos . . . . . . . . . . . . . . . . . . . . . . . . . . 276
13.7.1 Get the Flexmojos Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . 276
14 Android Application Development with Maven 278
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
14.2 Configuring Build Environment for Android Development . . . . . . . . . . . . . . . . 279
14.2.1 Installing the Android SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
14.2.2 Android artifact install into Maven repository . . . . . . . . . . . . . . . . . . . 280
14.2.2.1 Installation to local repository . . . . . . . . . . . . . . . . . . . . . . 280
Maven: The Complete Reference xvii
14.2.2.2 Installation to remote repository . . . . . . . . . . . . . . . . . . . . . 281
14.2.2.3 Installation of a subset of all platforms . . . . . . . . . . . . . . . . . 281
14.3 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
14.4 Creating New Projects with the Android Maven Archetypes . . . . . . . . . . . . . . . . 284
14.5 Using Add-Ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
14.6 Multi Module Android Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
14.7 Using external dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
14.8 The Custom Lifecycle from the Android Maven Plugin . . . . . . . . . . . . . . . . . . 287
14.9 Plugin Configuration Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
14.10Device Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
14.11Emulator Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
14.12Other Useful Android Maven Plugin Goals . . . . . . . . . . . . . . . . . . . . . . . . 291
14.12.1 Manifest-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
14.12.2 Zipalign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
14.12.3 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
14.13Internal Android Maven Plugin Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
14.14Testing Android Application Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
14.14.1 Unit tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Maven: The Complete Reference xviii
14.14.2 Instrumentation tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
14.15Native Application Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
14.16Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
14.16.1 Other Maven Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
14.16.2 Performing a Release Build . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
14.16.3 Configuring command line usage . . . . . . . . . . . . . . . . . . . . . . . . . 295
15 Appendix: Settings Details 296
15.1 Quick Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
15.2 Settings Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
15.2.1 Simple Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
15.2.2 Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
15.2.3 Mirrors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
15.2.4 Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
15.2.5 Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
15.2.6 Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
15.2.7 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
15.2.8 Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
15.2.9 Plugin Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Maven: The Complete Reference xix
15.2.10 Active Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
15.2.11 Encrypting Passwords in Maven Settings . . . . . . . . . . . . . . . . . . . . . 307
16 Appendix: Sun Specification Alternatives 312
17 Creative Commons License 315

Redis command

Enter Redis Client : redis-cli

Enter Redis Client with IP and Port :

redis-cli -h host -p port -a password

Redis list all keys command : keys *

Redis get key value :  redis 127.0.0.1:6379> GET KEY_NAME