Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change 
notification.

The "Hbase/IvyPrimer" page has been changed by stack.
http://wiki.apache.org/hadoop/Hbase/IvyPrimer?action=diff&rev1=3&rev2=4

--------------------------------------------------

- HBase (trunk, 0.21.0) uses Ivy (http://ant.apache.org/ivy/) as the dependency 
manager to resolve dependencies ( There has been an interest to eventually 
migrate to maven. Interested people can contribute to the same ). 
+ HBase (trunk, 0.21.0) uses [[http://ant.apache.org/ivy/|Ivy]] as the 
dependency manager to resolve dependencies (There has been an interest to 
eventually migrate to maven. Interested people can contribute to the same).  
This page has some notes on whats involved now we use Ivy and toward the end 
there is an FAQ.
  
-  * Ivy Internals
+ == Ivy Internals ==
+ Ivy is a plugin that fits nicely with Ant and hence needs no separate 
software, other than Ant itself. (See Ant page for more details).
  
- Ivy is a plugin that fits nicely with Ant and hence needs no separate 
software , other than Ant itself. (See Ant page for more details)
+ The build looks for the presence of the ivy library in 
{{{${basedir}/ivy/ivy-2.1.0.jar}}}, and downloads the same if it is not 
present. 
+  
+ == Ivy Cache ==
+ Ivy looks up the ivy.xml in the current directory of ${basedir}, as well as 
the base directory of contrib modules  (stargate and transactional). 
  
+ By default, it applies transitive dependency for the modules, to make sure we 
pull the entire dependency tree along with a given module as well. 
- The build looks for the presence of the ivy library in 
${basedir}/ivy/ivy-2.1.0.jar , and downloads the same if it is not present. 
-  
-  * Ivy Cache 
  
- Ivy looks up the ivy.xml in the current directory of ${basedir} , as well as 
the base directory of contrib modules  ( stargate / transactional ). 
- 
- By default- it applies transitive dependency for the modules, to make sure we 
pull the entire dependency tree along with a given module as well. 
- 
- The default settings in trunk, enables dependencies to be  pulled from the 
list of pre-defined repositories (See ${basedir}/ivy/ivysettings.xml ). 
+ The default settings in trunk, enables dependencies to be pulled from the 
list of pre-defined repositories (See ${basedir}/ivy/ivysettings.xml). 
  The order of the dependency resolvers specifically come in 
ivy/ivysettings.xml as follows:
  
      <chain name="default" dual="true">
@@ -29, +27 @@

        <resolver ref="apache-snapshot" />
      </chain>
  
- These resolvers should be sufficient at this point . Should there be need to 
add more - continue to maintain apache-snapshot as the last resolver in the 
order , because that being a development snapshot. 
+ These resolvers should be sufficient at this point. Should there be need to 
add more, continue to maintain apache-snapshot as the last resolver in the 
order, because that being a development snapshot. 
  
+ After contains the URL-s it copies the libraries (currently, only jars) to  
$HOME/.ivy2/cache, the *first time* if it does not exist. For subsequent 
operations of invocation of ivy, it copies the jar files from the ivy cache to 
the appropriate directory where we want to be, without incurring network cost 
then. 
  
- After contains the URL-s it copies the libraries(currently, only jars) to  
$HOME/.ivy2/cache , the *first time* if it does not exist . For subsequent 
operations of invocation of ivy , it copies the jar files from the ivy cache to 
the appropriate directory where we want to be, without incurring network cost 
then. 
+ == FAQ ==
+ === Question 1: Where did the jars that were present in lib/*.jar go? ===
+ They should now be present across:
+  * build/ivy/lib/common
+  * build/ivy/lib/test 
+  * build/contrib/stargate/ivy/lib/common
+  * build/contrib/stargate/ivy/lib/test
+  * build/contrib/transactional/ivy/lib/common
+  * build/contrib/transactional/ivy/lib/test
+  
+ === Question 2: I just updated my trunk. I cannot see needed jars.  Where are 
they? ===
  
+ Do a 'ant compile' in the command line. As one of the dependent targets 
(ivy-retrieve-common and ivy-retrieve-test), the jars should be pulled to the 
directory structure mentioned above in '''Question 1: Where did the jars that 
were present in lib/*.jar go'''. 
  
-  * FAQ:
-   * Where did the jars that were present in lib/*.jar go ? 
-    They should now be present across - 
-    * build/ivy/lib/common
-    * build/ivy/lib/test 
- 
-    * build/contrib/stargate/ivy/lib/common
-    * build/contrib/stargate/ivy/lib/test
- 
-    * build/contrib/transactional/ivy/lib/common
-    * build/contrib/transactional/ivy/lib/test
- 
-   * I just updated my trunk. Could not see them. 
- 
- Do a 'ant compile' in the command line. As one of the dependent targets ( 
ivy-retrieve-common and ivy-retrieve-test ) - the jars should be pulled to the 
directory structure mentioned above. 
- 
-   * Something is weird. I don't like this automagical dependency pull. How do 
I start all over ? 
+ === Question 3: Something is weird. I don't like this automagical dependency 
pull. How do I start all over? ===
- 
-    * $ ant clean 
+  * $ ant clean 
-    * $ rm -fR ~/.ivy2/cache 
+  * $ rm -fR ~/.ivy2/cache 
-    * $ ant compile 
+  * $ ant compile 
  
  This would clear the ivy cache and start all over again. This is needed only 
in the worst case and not for every build. 
  
  Usually this happens when the publisher republishes the binary in the 
repository (for the same version, after a release) making the client cache out 
of sync, with the server.  For most of the open source projects will 
well-defined release process, this does not happen. 
  
-   * I do not need to connect to the internet from the build server. What are 
the options now. 
+ === Question 4: I cannot connect to the internet from the build server. What 
are the options now? ===
  
-    * Set up a directory structure similar to a repository listed ( Say , 
http://repo2.maven.org/maven2/ ).  
+  * Set up a directory structure similar to a repository listed (Say 
'''http://repo2.maven.org/maven2/''').  
-    * For all the projects (And the versions) that you need , create the 
directory structure exactly the same as those in the repository. 
+  * For all the projects (And the versions) that you need , create the 
directory structure exactly the same as those in the repository. 
-    * Modify ivy/ivysettings.xml to add a file/directory based resolver at the 
beginning. 
+  * Modify ivy/ivysettings.xml to add a file/directory based resolver at the 
beginning. 
-    * In the chain of resolvers, add the new resolver right on top before 
everything else ( as the order matters). 
+  * In the chain of resolvers, add the new resolver right on top before 
everything else (as the order matters). 
  
  So - now we are good with the build able to complete from our internally 
controlled repository as opposed to being exposed to the outside world. 
  

Reply via email to