In general there are two popular kinds of task dependencies - end-to-start and end-to-end. The former means that work on task B cannot start until task A is finished. The latter means that work on task B can start, but cannot finish until task A is finished.
How to create and end-to-start dependency
Create a JIRA link from task B to task A. Add comments to the link explaining the nature of the dependency and make sure that the time estimate for B includes the integration work with A. Here is an example: http://jira.jboss.com/jira/browse/JBTPL-11
How to create an end-to-end dependency
Create a new task that links to both A and B. In the description of the task explain that this is an integration task, which tracks the need for A to be finished in order for B to finish. Set the time estimate to the amount of time it should take to complete B once A is done. Here is an example: http://jira.jboss.com/jira/browse/JBTPL-13
Container integration dependencies
Container projects such as JBAS consist of components, some of which are integral to the container (such as CMP, IIOP) and others are based on external projects (MicroContainer, JBossCache).
For each container version and each component based on external project, there should be an integration tasks created in the container project. The task should specify which version of the external project the container component depends on (e.g. JB AS 4.0.1 depends on JBoss Cache 1.2). Both project leads need to be aware and agree on the dependency at the time the integration task is created.
When new issues are created against the dependent project version (JB Cache 1.2) related to the development of the container project version (JB AS 4.0.1), they should be linked to from the integration task. Example: http://jira.jboss.com/jira/browse/JBAS-56
If the dependent project version is released before the container project is (JB Cache released on Dec 10, while JB AS 4.0.1 is not released until Dec 22), there should be a flexible mechanism to accomodate intermediary patches. One option is for the dependent project to maintain a separate branch (JBCache_1_2_JBAS_4_0_1) for the container integration. Another option is for the dependent project to apply patches against its main branch and release minor increments (JB Cache 1.2.0b).